В настоящее время я использую 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). Спасибо, Серж!
Спасибо за ответ, саржи. Для меня это тоже не сработало. Я использовал HTML, прежде чем пытаться Spannable string, и не смог найти удовлетворительный способ обработки размера текста. Чтобы быть ясным, я попробовал ваше предложение, но оно тоже не центрировало текст. Спасибо, в любом случае. – aikorei
Я вижу, плохо смотрю – serge
Mybe, вы не задали ширину текста в XML, чтобы соответствовать родительскому, чтобы у него не было места, чтобы центрировать его внутри TextView. – serge