Android:更改输入的新文本的编辑文本的字体

时间:2015-07-12 08:25:47

标签: android android-typeface

我希望在同一个编辑文本中为不同的文本部分使用不同的字体。我试过这样做来改变字体:

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

我正在使用按钮使文字变粗。

但这会改变EditText中已存在的整个文本的字体!我想保留现有的文本格式并更改我点击" Bold"之后输入的文字的字体。按钮。

1 个答案:

答案 0 :(得分: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);