2013-12-25 1 views
2

Я пытаюсь создать функцию, которая примет строку «слово» в качестве аргумента, примените стиль span к строке и вернет ее как растянутую строку, которую я может ""+insert+"" в строку в TextView. Заранее благодарю вас за любую помощь, которую вы можете предложить.Функция, чтобы возвратить spannable и добавить его к строке в textview

Вот функция, которую я имею до сих пор.

public Spannable fr(String word){ 
    Spannable WordtoSpan = new SpannableString(word);   
    WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 
     word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    WordtoSpan.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 
     word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    return WordtoSpan; 
} 

и код, который должен отображать расширяемый встроенный текст.

TextView tview = (TextView) findViewById(R.id.accents_view); 
tview.setText(Html.fromHtml("<strong>Text String</strong> "+fr("style_this")); 

Приложение будет либо загружать текст без стилизации, либо приложение будет аварийно завершено. Не уверен, что я делаю неправильно, но я предполагаю, что это имеет какое-то отношение к микшированию из HTML-текста с spannables. Любая работа вокруг?

Если я удаляю Html.fromHtml() и обертываю весь текст своей функцией fr(), он работает. Я получаю полужирный синий текст. Но мне нужно иметь возможность делать только определенные слова в стиле ... Было бы неплохо иметь возможность ссылаться на vars из моего файла string.xml, а не на жесткую их кодировку, для многоязыковой поддержки.

+0

Если удалить Html.fromHtml() и завернуть весь текст с моей функции фр() она работает. Я получаю полужирный синий текст. Но мне нужно иметь возможность делать только определенные слова в стиле ... Было бы неплохо иметь возможность ссылаться на vars из моего файла string.xml, а не на жесткую их кодировку, для многоязыковой поддержки. –

ответ

0

Я думаю, что вы можете найти это полезным,

TextView tview = (TextView) findViewById(R.id.accents_view); 
tview.setText(Html.fromHtml("<font color='blue'>Text</font> " 
    + "<font color='red'>String</font>")); 
+0

Это прекрасно работает, однако я понимаю, что стили html или css, применимые к строкам в текстовых изображениях Android, несколько ограничены, например; http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html. Я хочу иметь возможность добавлять такие вещи, как цвет фона, и отступы к определенным частям текста. Возможно ли это с помощью статических html-тегов? –

+0

Вам придется попробовать ... Я не уверен в этом, но цвет переднего плана и шрифт легки (и ' ' тоже будет работать). –

+0

Спасибо Эллиотт. Мне придется больше практиковать Spannables для создания более гибкого стилизованного текста, но пока это будет сделано. На данный момент я устанавливаю для функции, которая возвращает строку с html-стилями, поэтому мне не нужно вводить их каждый раз, когда я хочу выделить слово! –

 Смежные вопросы

  • Нет связанных вопросов^_^