目前我正在使用26 Textview
,以便我可以根据运行时情况将样式应用于特定字符。
但是如果我能够在textview中对特定字符应用样式,我只能使用一个textview来实现我的目标。
e.g。 如果我想在下面的代码中使字符'M'变红。是否有可能实现这一目标?
<TextView
android:id="@+id/TextView01"
android:layout_height="wrap_content"
android:textSize="20dip"
android:textStyle="bold"
android:layout_width="15dip"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:background="#FFFFFF"
android:textColor="#000000"/>`
或者任何人都有比使用26 TextView
更好的选择,它也欢迎。
答案 0 :(得分:1)
试试这段代码。它会帮助你..
RelativeLayout rl=(RelativeLayout) findViewById(R.id.rl);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams((int)LayoutParams.WRAP_CONTENT,(int)LayoutParams.WRAP_CONTENT);
params.leftMargin=45;
params.topMargin=70;
TextView textView=new TextView(this);
String text = "I Love <font color='red'>ANDROID !!!</font>";
textView.setText(Html.fromHtml(text));
textView.setLayoutParams(params);
textView.setTextSize(25);
rl.addView(textView);
答案 1 :(得分:1)
使用Spannable
private SpannableString spanIt(String text, String queryText) {
// search for query on text
int startIndex = text.indexOf(queryText);
int endIndex = startIndex + queryText.length();
// spannable to show the search query
SpannableString spanText = new SpannableString(text);
if (startIndex > -1) {
spanText.setSpan(new ForegroundColorSpan(Color.RED), startIndex,
endIndex, 0);
}
return spanText;
}
然后是textview ..
tv.settext(spanIt("ABCDEFGHIJLMNOPQRSTUVXZ","M"));
答案 2 :(得分:0)
您只能使用1个textview并通过Html.fromHtml()
更改颜色