2015-07-12 3 views
1

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

Typeface myFont = Typeface.createFromAsset(getAssets(), "droid-sans.ttf"); 
myEditText.setTypeface(myFont, Typeface.BOLD); 

Я использую кнопку, чтобы сделать текст BOLD.

Но это изменяет шрифт всего текста, который уже присутствует в EditText! Я хочу сохранить существующее форматирование текста и изменить Typeface для текста, который будет введен после нажатия кнопки «Полужирный».

+0

проверить это http://stackoverflow.com/questions/13227670/using-custom-font-for-part-of-a-text – sowmia

+0

Это не было бы решение, если мы хотим изменить начертание шрифта на во время выполнения. Тип шрифта должен применяться к тексту во время выполнения, когда пользователь вводит текст в EditText – pg18

ответ

0

Вы ищете Spannable интерфейс. Вы можете использовать это, чтобы изменить шрифт другой части EditText или TextView.

Это пример кода для преобразования выбранного текста в ITALIC.

Spannable str = mBodyText.getText(); 
if(mBodyText.getSelectionEnd() > mBodyText.getSelectionStart()) 
    str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 
         mBodyText.getSelectionStart(), mBodyText.getSelectionEnd(), 
         Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
else 
    str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 
       mBodyText.getSelectionEnd(), 
       mBodyText.getSelectionStart(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
+0

Не могли бы вы объяснить мне, как я могу использовать это, чтобы изменить шрифт «на лету». Если я нажму кнопку Bold, текст, который будет напечатан после нажатия кнопки, должен быть полужирным. Вы обрабатываете выделенный текст. – pg18

+0

Кстати, я понял, как это сделать. Ваш ответ работает. Большое спасибо !! – pg18

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