android中相同文本视图中文本的2种不同颜色[重复]

Posted

技术标签:

【中文标题】android中相同文本视图中文本的2种不同颜色[重复]【英文标题】:2 different colors for Text in same text view in android [duplicate] 【发布时间】:2013-02-13 05:39:56 【问题描述】:

我有一个TextView小部件,如下图

<TextView 
        android:text="@string/inputText"
        android:layout_
        android:layout_
        android:layout_weight="1" />

inputText 在 Strings.xml 中定义为

<String name="inputText">The value of input is positive now</String>

现在,我希望整个文本以棕色显示,并且只有“正面”以绿色显示。

有什么办法吗? 简而言之,我的问题是同时为同一个文本视图进行多种着色

【问题讨论】:

你试过developer.android.com/reference/android/text/Spannable.html或***.com/questions/6279441/…吗? 【参考方案1】:

这是这个问题Change text color of one word in a TextView的重复。

String first = "This word is ";
String next = "<font color='#EE0000'>red</font>";
t.setText(Html.fromHtml(first + next));

【讨论】:

哦,没看到另一个,反正谢谢。 然后标记为已回答;) 这不再起作用(在 4.2.2 设备上测试) 这应该被标记为接受的答案 这里有一个更新:颜色值不应包含 Alpha 通道!【参考方案2】:

您可以在strings.xml 中使用CDATA 以某种HTML 格式存储您的字符串,并使用Html.fromHTML 将其显示在您的TextView 中。

字符串.xml

<string name="inputText">
    <![CDATA[
      <p>The value of input is <font color='#00ff00'>positive</font> now.</p>
    ]]>
</string>

Java 代码

myTextView.setText(Html.fromHtml(getString(R.string.inputText));

【讨论】:

非常感谢您的解答!【参考方案3】:

使用这种方法:用 html 格式化字符串

String text = "<font color=#cc0029>Text with Color first</font> <font color=#ffcc00>Text with Color second</font>";
yourtextview.setText(Html.fromHtml(text));

【讨论】:

【参考方案4】:

使用 Spannable 来做到这一点:

String text = "<font color='brown'>The value of input is </font><font color='green'> positive </font><font color='brown'> color </font>";
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);

【讨论】:

【参考方案5】:

试试这个,

TextView tv = (TextView)findViewById(R.id.mytextview01);

SpannableString WordtoSpan = tv.getText();

WordtoSpan.setSpan(new ForegroundColorSpan(Color.GREEN), 23, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(WordtoSpan);

【讨论】:

以上是关于android中相同文本视图中文本的2种不同颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在android中更改列表视图的文本颜色

如何在 Android 中更改菜单项的文本颜色?

具有多种文本颜色的文本视图android [重复]

xml 代码中具有不同颜色文本的文本视图

如何为垂直文本赋予 2 种不同颜色的字体,以便文本 1 和文本 2 在一个“div 类”中?

SwiftUI:在同一个文本视图中使用不同的颜色