2013-11-06 1 views
3

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

Я нашел this post, который дал руководство по форматированию для выравнивания, а также this Android Developer page о том, как использовать AlignmentSpan, но он, похоже, не работает для меня. Eclipse не показывает ошибок, приложение загружается/работает очень хорошо, но выравнивающий элемент, кажется, полностью игнорируется. Вот мой код:

Spannable t = new SpannableString("Test Blue."); 
t.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.color_blue)), 0, t.length()-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
t.setSpan(new AbsoluteSizeSpan((int) getResources().getDimension(R.dimen.big_text)), 0, t.length()-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
t.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), 0, t.length()-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
text3.setText(t); 

Любая помощь будет очень признательна.

[Изменить] Я также пробовал комментировать как цвет, так и размер setSpans, чтобы увидеть, есть ли конфликт, но не повезло.

[Редактировать 2]: Я отметил правильный ответ, но правильный ответ на самом деле похож на комментарии. Мне не удалось обновить ширину файла XML для TextView до match_parent (вместо fill_content). Спасибо, Серж!

ответ

2

Может быть, вы могли бы попытаться сделать это:

String t = "<center><font color=\"blue\">Test Blue.</font></center>"; 
text3.setText(Html.fromHtml(t)); 
+0

Спасибо за ответ, саржи. Для меня это тоже не сработало. Я использовал HTML, прежде чем пытаться Spannable string, и не смог найти удовлетворительный способ обработки размера текста. Чтобы быть ясным, я попробовал ваше предложение, но оно тоже не центрировало текст. Спасибо, в любом случае. – aikorei

+0

Я вижу, плохо смотрю – serge

+1

Mybe, вы не задали ширину текста в XML, чтобы соответствовать родительскому, чтобы у него не было места, чтобы центрировать его внутри TextView. – serge