Можно ли управлять макетом текста в представлениях Android? - PullRequest
0 голосов
/ 15 апреля 2011

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

Мне нужно иметь непрерывный документ, в котором некоторые части должны быть выровнены по правому краю, а некоторые - по центру. Некоторые смелые, некоторые нет, а некоторые с цветным фоном, а некоторые с белым. Также позволяет пользователю выбрать шрифт.

Может кто-нибудь порекомендует достойный подход к этому, пожалуйста.

спасибо

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

TextView / EditText работает с довольно богатым текстом, описанным здесь различными объектами span style: http://developer.android.com/reference/android/text/style/package-summary.html

Например, вы можете использовать это для создания текста, содержащего эти различные стили: http://developer.android.com/reference/android/text/SpannableStringBuilder.html

SpannableStringBuilder - это CharSequence, поэтому его можно установить как текст в TextView. Хотя чаще вы, вероятно, просто хотите использовать TextView.getEditableText (), чтобы вернуть редактируемый интерфейс к тексту внутри текстового представления, что позволяет вам изменять его содержимое, включая стили.

TextView поддерживает большую часть того, что вы запрашиваете через интервалы стилей, хотя выравнивание применяется для каждого абзаца, а не для каждой строки. (Per-line это странно ... Я не думаю, что даже Word делает такое?)

0 голосов
/ 15 апреля 2011

Я бы рекомендовал использовать несколько TextViews.Возможно, по одному на каждую строку, если вам действительно нужен текст, который отличается.Вы можете настроить каждый из них, как вы хотите, довольно легко.Если вы еще этого не сделали, взгляните на документацию: http://developer.android.com/reference/android/widget/TextView.html
Затем вы можете использовать RelativeLayout или LinearLayout, чтобы расположить их так, как вам нужно.Просто спросите, есть ли у вас другие вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...