以编程方式在文本视图中使用的字符串的颜色[重复]
Posted
技术标签:
【中文标题】以编程方式在文本视图中使用的字符串的颜色[重复]【英文标题】:Colours of strings used in a text view programmatically [duplicate] 【发布时间】:2015-09-11 06:35:58 【问题描述】:是否可以以编程方式设置文本视图中使用的字符串的颜色?我试过用这个,但它不起作用。
TextView txt = (TextView)v.findViewById(R.id.textView1);
txt.setText(html.fromHtml("<font color='#0099CC'>@string/app_name</font>" +
"<font color='#995676'> @string/app_description</font>" +
"<font color='#55GGFES'> @string/app_version</font>"
));
【问题讨论】:
不,因为我需要在 1 个文本视图中使用多个字符串 我们还有另一个问题 ***.com/questions/10140893/… 实际上是另一个问题的重复 :) 抱歉,没有仔细阅读 如果重复,请删除。 【参考方案1】:你可以,但不是那么容易。您不能以这种方式在 Java 中的字符串中注入 @string/ 。您可以使用context.getResources().getString(R.id.app_name);
来获取名称。像这样:
txt.setText(Html.fromHtml("<font color='#0099CC'>"+
context.getResources().getString(R.id.app_name)+"</font>"+
"<font color='#995676'>"+
context.getResources().getString(R.id.app_description)+"</font>"));
【讨论】:
你能展示一下2个字符串的用法吗? 太棒了!谢谢:-)【参考方案2】:你也可以使用 spannable。
String mString = context.getResources().getString(R.id.app_name);
Spannable coloredSpan = new SpannableString(mString);
//Spannable.setSpan(Object what, int start, int end, int flags)
coloredSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, mString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(coloredSpan);
【讨论】:
以上是关于以编程方式在文本视图中使用的字符串的颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式用户根据 JavaFX 中的字符串值定义列表视图的颜色
如何在 UIAlertController 中以编程方式更改特定按钮文本颜色