TextView - форматирование(выравнивание) текста внутри?

Интерфейс, диалоги, темы, стили, меню
JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 15:41

Здравствуйте,

Нужно в компоненте TextView выравнивать одно слово всегда в конце последней строки.
Если попроще, то есть сообщение, хочу выравнивать время сообщения в конце последней строки и с форматированием(цвет, размер шрифта и так д).

Нашел пока две возможности -1 и 2 ответ
http://stackoverflow.com/questions/1529 ... a-textview

Но fromHtml у меня почему-то не берет даже такую строку, если например просто жирный, то берет.

Код: Выделить всё

TextView chatMessageTextView = (TextView) view.findViewById(R.id.chatMessageTextView);
chatMessageTextView.setText(Html.fromHtml(message.getMessage() + "<span style=\"color:red\">" + message.getTime() + "</span>"));
вот компонент,

Код: Выделить всё

    <TextView
        android:id="@+id/chatMessageTextView"
        style="@style/chatMessageTextStyle" />
а вот стиль

Код: Выделить всё

    <style name="chatMessageTextStyle" parent="@android:style/TextAppearance.Small">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginBottom">10dp</item>
        <item name="android:layout_marginLeft">5dp</item>
        <item name="android:layout_marginRight">5dp</item>
        <item name="android:padding">3dp</item>
        <item name="android:textColor">#000000</item>
        <item name="android:typeface">sans</item>
        <item name="android:textSize">12sp</item>
    </style>
Спасибо за подсказки. )

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение rezak90 » 30 ноя 2012, 18:10

на сколько я знаю то используемые html теги ограничены, не все можно использовать
R.id.team
Политика на форуме запрещена

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 18:12

Понял, тогда может подскажете, как это сделать?
Пас. )

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение rezak90 » 30 ноя 2012, 18:28

может стоит форматировать текст в html и отображать в webview
R.id.team
Политика на форуме запрещена

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 19:41

идея то неплохая, но если например, ввести ссылку, отобразить в WebView или кликнуть по ней, то он начнет себя вести как браузер или?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение rezak90 » 30 ноя 2012, 20:13

там есть настройки у него где можно запретить
R.id.team
Политика на форуме запрещена

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 21:44

Всё норм работает

Код: Выделить всё

		String message = "Ололоша Ололоев ";
		String date = "30.11.12";
		
		TextView privet = (TextView) findViewById(R.id.privet);
		privet.setText(Html.fromHtml("<b><u>" + message + "<font color=\"red\">" + date + "</font></b></u>"));
Вложения
Screenshot_2012-11-30-20-40-33[1].png
Screenshot_2012-11-30-20-40-33[1].png (28.82 КБ) 15400 просмотров
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 21:47

Пас, попробую. )

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 21:59

Хммм, и вправду работает, но что-то я не пойму, как это вы тэги закрываете? Не по порядку, в чем фокус?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 22:10

порядок?
смысл в том что получается такая строка

Код: Выделить всё

<b><u>Ололоша Ололоев <font color="red">30.11.12</font></b></u>
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 22:12

Размер шрифта не выставляется. (

Код: Выделить всё

messageTextView.setText(Html.fromHtml("<b><u>" + message.getMessage() + "<font color=\"#cccccc\" size=\"4px\">" + "\n" + message.getTime() + "</font></b></u>"));

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 22:28

Ну так сделай под время отдельный текствью =)
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 22:38

)) думаю что так не получится, так как у меня shape в который я засовываю свой TextView

Код: Выделить всё

        private void addMessageToStage(Message message) {

                LinearLayout scrollChatMessagesOutput = (LinearLayout) findViewById(R.id.chatMessagesOutput);

 

                LayoutInflater layoutInflater = getLayoutInflater();

                View view = layoutInflater.inflate(R.layout.chat_single_message, null, false);

                TextView messageTextView = (TextView) view.findViewById(R.id.singleChatMessageTextView);

 

                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);

 

                if (messagesAlignId % 2 == 0) {

                        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);

                        messageTextView.setBackgroundResource(R.drawable.chat_input_message_shape);

                } else {

                        params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);

                        messageTextView.setBackgroundResource(R.drawable.chat_output_message_shape);

                }

 

                messageTextView.setText(Html.fromHtml("<b><u>" + message.getMessage() + "<font color=\"#cccccc\" size=\"4px\">" + "\n" + message.getTime() + "</font></b></u>"));

                RelativeLayout messageAlignLayout;

                messageAlignLayout = new RelativeLayout(this);

                messageAlignLayout.addView(view, params);

 

                scrollChatMessagesOutput.addView(messageAlignLayout);

 

        }

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 22:48

Немного порывшись в исходниках, я понял что font size is deprecated =)
кароче юзай <h1></h1> - <h6></h6>
работает нормально)

Код: Выделить всё

textview.setText(Html.fromHtml("<b><u>" + "message.getMessage() " + "<h1>" + "message.getTime()" + "</h1></b></u>"));
п.с. а еще вот это почитай :D
Тяжело твой код читать, буду бить линейкой по рукам если не исправишься или останешься на всю жизнь junior девелопером :twisted:
Последний раз редактировалось Finch 30 ноя 2012, 22:56, всего редактировалось 1 раз.
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 22:56

Спасибо, может глянете на еще один мой пост? в єтой же ветке, - буду благодарен.. )))

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 23:03

JDev писал(а):єтой
хохол дЭтЭктЭд =)
п.с. читай выше...
читал я твой пост в Єтой же ветке и ваще ниче там не понимаю :lol:
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 23:31

Finch писал(а):
JDev писал(а):єтой
хохол дЭтЭктЭд =)
п.с. читай выше...
читал я твой пост в Єтой же ветке и ваще ниче там не понимаю :lol:
)))) Да, с Украины, не заметил, что раскладку не поменял. )))
Ну я там уже и скрин прилепил. )) Что не понятно?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение Finch » 30 ноя 2012, 23:37

именование у тебя не по понятиям, а город какой?
CEO of a company R.id.team

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 23:40

Нужно искать альтернативное решение, h1-h6 не работает, только отступы делаются большие - размер текста изменяется как-то странно(большие отступы вверху и внизу) и не до необходимой величины, .. :((

Код: Выделить всё

messageTextView.setText(Html.fromHtml(message.getMessage() + "<font color=\"#cccccc\">" + "\n" + "<h6>"+ message.getTime() +"</h6>" + "</font>"));

JDev
Сообщения: 88
Зарегистрирован: 05 авг 2012, 19:42

Re: TextView - форматирование(выравнивание) текста внутри?

Сообщение JDev » 30 ноя 2012, 23:42

Finch писал(а):именование у тебя не по понятиям, а город какой?
- не понял чуток, что имеется в виду - под именованием, и как это не по понятиям? )))
Западная Украина, но сейчас живу в Берлине.

Ответить