我希望在同一个编辑文本中为不同的文本部分使用不同的字体。我试过这样做来改变字体:
Typeface myFont = Typeface.createFromAsset(getAssets(), "droid-sans.ttf");
myEditText.setTypeface(myFont, Typeface.BOLD);
我正在使用按钮使文字变粗。
但这会改变EditText中已存在的整个文本的字体!我想保留现有的文本格式并更改我点击" Bold"之后输入的文字的字体。按钮。
答案 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);