我试图从textview的某个位置突出显示Textview的特定颜色。例如,在textview字符串中,我想突出显示从0到15位置的白色和从第16位到字符串结尾的红色。这是可能的?谁能举个例子?
答案 0 :(得分:2)
使用Spannable Text
你可以做到
Spannable WordtoSpan = new SpannableString("I know just how to whisper");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(WordtoSpan);
答案 1 :(得分:0)
TextView
有一个属性textColor
。一旦设置,它将为整个TextView.
着色
我认为Android中没有内置的功能可以满足您的需求,但我们的想法是将您的长TextView
从您需要的位置截断为几个小TextViews
,并将每个{{1}}绘制成自己的颜色。
答案 2 :(得分:0)
Get count of your string
int length = YourString.length();
then check with if condtion and set like this.
TextView tt;
int color = Integer.parseInt("bdbdbd", 16)+0xFF000000);
tt.setTextColor(color);
答案 3 :(得分:0)
也许您可以使用WebView并将HTML代码放入...
String html = "<div><span style="background-color:red">SOME TEXT</span><span style="background-color:blue">SOME TEXT</span></div>"
wv.loadData(html, "text/html", Encoding.UTF_8.toString());
答案 4 :(得分:0)
我认为没有直接的方法在文本视图中设置不同的颜色。
您可以尝试将html格式的文本设置为文本视图以实现目标。 例如;
yourTextView.setText(Html.fromHtml(yourText));
在上面的代码中, yourText 是html格式的字符串,您可以根据应用程序逻辑创建html文本。
答案 5 :(得分:0)
您可以使用ForegroundColorSpan对TextView
例如 -
TextView tView = (TextView)findViewById(R.id.text);
tView.setText("Italic, highlighted, bold.", TextView.BufferType.SPANNABLE);
Spannable WordtoSpan = (Spannable) tView.getText();
WordtoSpan.setSpan(new ForegroundColorSpan(0xFFFFFF00), 0, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tView.setText(WordtoSpan);