我需要textview
有不同颜色的文字。我还需要从xml
代码执行此操作,而不是从java代码执行此操作。有没有人知道这样做的方法?
感谢
e.g。我有句“这是红色的”。我需要单词为绿色,单词红色为红色。
答案 0 :(得分:14)
将您的文本引用到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>
希望能帮助你
答案 1 :(得分:12)
有三种方法可以更改textview中某些文本的颜色。
通过{res&gt;值)中的strings.xml
文件,使用标记(<![CDATA[<p>This is green <font color='hexvalue of red'>and this is red</font>.</p> ]]>
),然后将java代码中的textview声明为myTextView.setText(Html.fromHtml(getString(R.string.myText));
使用HTML代码String text = "<font color='hexvalue of green'>This is green</font> <font color='hexvalue of red'>and this is red</font>."; myTextView.setText(Html.fromHtml((text));
使用java代码通过Spannable
文本。
Spannable span
= new SpannableString("My String");
span.setSpan(new ForegroundColorSpan(Color.RED), start_position,
end_position,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(span);
如果有其他方法可以做到,那我就不知道了。 希望这有帮助
答案 2 :(得分:0)
在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));
答案 3 :(得分:-4)
<TextView
android:id="@+id/yourUniqueTextViewID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World"
android:textColor="@color/RED" />
其中“RED”是命名常量,您必须在xml文件中的res / values /下定义。通常我会创建“colors.xml”。
或者看一下这些预定义的颜色:Web colors in an Android color xml resource file