Страница 1 из 2

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

Добавлено: 30 ноя 2012, 15:41
JDev
Здравствуйте,

Нужно в компоненте 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>
Спасибо за подсказки. )

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

Добавлено: 30 ноя 2012, 18:10
rezak90
на сколько я знаю то используемые html теги ограничены, не все можно использовать

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

Добавлено: 30 ноя 2012, 18:12
JDev
Понял, тогда может подскажете, как это сделать?
Пас. )

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

Добавлено: 30 ноя 2012, 18:28
rezak90
может стоит форматировать текст в html и отображать в webview

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

Добавлено: 30 ноя 2012, 19:41
JDev
идея то неплохая, но если например, ввести ссылку, отобразить в WebView или кликнуть по ней, то он начнет себя вести как браузер или?

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

Добавлено: 30 ноя 2012, 20:13
rezak90
там есть настройки у него где можно запретить

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

Добавлено: 30 ноя 2012, 21:44
Finch
Всё норм работает

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

		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>"));

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

Добавлено: 30 ноя 2012, 21:47
JDev
Пас, попробую. )

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

Добавлено: 30 ноя 2012, 21:59
JDev
Хммм, и вправду работает, но что-то я не пойму, как это вы тэги закрываете? Не по порядку, в чем фокус?

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

Добавлено: 30 ноя 2012, 22:10
Finch
порядок?
смысл в том что получается такая строка

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

<b><u>Ололоша Ололоев <font color="red">30.11.12</font></b></u>

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

Добавлено: 30 ноя 2012, 22:12
JDev
Размер шрифта не выставляется. (

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

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

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

Добавлено: 30 ноя 2012, 22:28
Finch
Ну так сделай под время отдельный текствью =)

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

Добавлено: 30 ноя 2012, 22:38
JDev
)) думаю что так не получится, так как у меня 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);

 

        }

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

Добавлено: 30 ноя 2012, 22:48
Finch
Немного порывшись в исходниках, я понял что 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:

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

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

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

Добавлено: 30 ноя 2012, 23:03
Finch
JDev писал(а):єтой
хохол дЭтЭктЭд =)
п.с. читай выше...
читал я твой пост в Єтой же ветке и ваще ниче там не понимаю :lol:

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

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

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

Добавлено: 30 ноя 2012, 23:37
Finch
именование у тебя не по понятиям, а город какой?

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

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

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

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

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

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