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

Posted

技术标签:

【中文标题】xml 代码中具有不同颜色文本的文本视图【英文标题】:Text view with different colored texts in xml code 【发布时间】:2013-07-07 16:43:25 【问题描述】:

我需要我的textview 有不同颜色的文本。我还需要从xml 代码执行此操作,而不是从 java 代码执行此操作。有没有人知道这样做的方法? 谢谢

例如我有一句话“这是红色的”。我需要单词是绿色的,而单词red是红色的。

【问题讨论】:

【参考方案1】:

将您的文本引用到 string.xml 并使用 html 字体标签,通过使用这种方式,您也可以更改每个字母的颜色。

只需在 java 中为该字符串添加这个:

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

  tv.setText(Html.fromHtml(getString(R.string.any_text)));

在string.xml中:

 <string name="any_text">
 <![CDATA[ <b><font color=#ff0000>write</b> your <b><font color=#0000ff>text</b> here .

]]> 
  </string>

希望能帮到你

【讨论】:

【参考方案2】:

有三种方法可以改变文本视图中某些文本的颜色。

    通过strings.xml文件进入(res>values),使用标签(&lt;![CDATA[&lt;p&gt;This is green &lt;font color='hexvalue of red'&gt;and this is red&lt;/font&gt;.&lt;/p&gt; ]]&gt;),然后在java代码中声明textview为myTextView.setText(Html.fromHtml(getString(R.string.myText));

    通过java代码,使用HTML标签String text = "&lt;font color='hexvalue of green'&gt;This is green&lt;/font&gt; &lt;font color='hexvalue of red'&gt;and this is red&lt;/font&gt;."; myTextView.setText(Html.fromHtml((text));

    通过Spannable文本使用java代码。

    Spannable span = new SpannableString("My String");

    span.setSpan(new ForegroundColorSpan(Color.RED), start_position,end_position,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    myTextView.setText(span);

如果还有其他方法可以做到这一点,那么我不知道它们。 希望这会有所帮助

【讨论】:

#1 和 #2 在 Kotlin、android Studio 3.1.3 中不起作用 @user3561494 我在 kotlin 中使用了 #1,对我来说它可以工作:tv_info_fimra.setText(Html.fromHtml(resources.getString(R.string.info_firma))) 【参考方案3】:

在 Java 类中这样定义 TextView:

TextView tv = (TextView) findViewById(R.id.text1);
String text = "<font color=#cc0029>write any thing here</font> "+
              "<font color=#ffcc00>write any thing here 2</font>";
tv.setText(Html.fromHtml(text));

【讨论】:

【参考方案4】:
<TextView
    android:id="@+id/yourUniqueTextViewID"
    android:layout_
    android:layout_
    android:text="Hello World"
    android:textColor="@color/RED" />

其中“RED”是一个命名常量,您必须在 xml 文件中的 res/values/ 下定义。通常我创建“colors.xml”。

或查看一组好的预定义颜色:Web colors in an Android color xml resource file

【讨论】:

感谢您的回复亲爱的朋友,但我是这个意思。例如我有一句话“这是红色的”。我需要单词 为绿色,单词 为红色。

以上是关于xml 代码中具有不同颜色文本的文本视图的主要内容,如果未能解决你的问题,请参考以下文章

Android Drawable 颜色运行时

在 Android 的 Recycler View 中生成和设置文本视图背景的随机颜色

如何在文本视图中更改单个单词的文本大小和颜色[重复]

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

更改 UITableView 中一些选定的表格视图单元格文本的颜色

如何在 XML 中获取(参考)当前主题默认文本颜色