Способ установить стиль текста программно в виджете Android? - PullRequest
2 голосов
/ 08 ноября 2010

Я вижу, что TextAppearanceSpan доступно, но примеров использования нет.Я просто хочу сделать текст жирным и оставить все остальное без изменений - возможно, есть более простой способ сделать это программно?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2010

Все, что вам нужно, это создать xml-файл в res / values ​​и написать что-то вроде следующего:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="header">
        /** here goes the style */
    </style>
</resources>

Тогда все, что вам нужно, это передать сгенерированный R.style.header в конструктор TextAppearanceSpan.

2 голосов
/ 13 января 2011

Это задокументировано на http://developer.android.com/guide/appendix/faq/commontasks.html#selectingtext посмотрите на второй способ, используя Spannable.

В частности

// Get our EditText object.
EditText vw = (EditText)findViewById(R.id.text); // or new etc

// Set the EditText's text.
vw.setText("Italic, highlighted, bold.");

// Get the EditText's internal text storage
Spannable str = vw.getText();

// Create our span sections, and assign a format to each.
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new BackgroundColorSpan(0xFFFFFF00), 8, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
...