如何在android中以斜体显示部分文本字段?

时间:2013-07-09 17:42:24

标签: java android string textbox italics

我正在开发一个Android应用程序,它从用户输入的文本字段中获取一些数据,并根据此数据在新文本字段中输出单个字符串。很简单,但是我需要将字符串的一部分用斜体字表示。

我已经找到了如何使整个文本字段以斜体显示(如下所示),但是如何仅选择构成字符串的特定变量以斜体显示?

public class RefGenActivity extends Activity {

private EditText reftext;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_refgen);
reftext = (EditText) findViewById(R.id.editText1);      
reftext.setTypeface(null, Typeface.ITALIC); //SET TO ITALICS
reftext.setText(getRef());
}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

你可以这样做:

String html = "This is a <i>Text</i>.";
editText.setText(Html.fromHtml(html));

答案 1 :(得分:2)

您可以使用Spannable String

String s= "Hello Everyone";
  SpannableString ss1=  new SpannableString(s);
  ss1.setSpan(new RelativeSizeSpan(2f), 0,5, 0);
  ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0); 
  ss1.setSpan(new StyleSpan(Typeface.ITALIC), 0, 5, 0); 
  ss1.setSpan(new StyleSpan(Typeface.BOLD), 0, ss1.length(), 0);
  ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, ss1.length(), 0); 
  editText.append(ss1); 

更多样式

http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring