我的意思是:
<string name="error" color="#9a1d1d">Error!</string>
答案 0 :(得分:15)
正如rekire建议的那样,无法按照你的方式设置颜色。
您可以使用rekire建议的方法。
在xml中,您可以将textview的颜色指定为
android:textColor="#0EFFFF"
您还可以设置文本颜色programaticaly
TextView tv= (TextView)findviewById(R.id.textView1);
tv.setTextColor(Color.RED);
要在textview中设置特定单词的颜色,可以使用spannable string
TextView tv= (TextView)findviewById(R.id.textView1);
tv.setText("");
String s="Hello World";
SpannableString ss= new SpannableString(s);
ss.setSpan(new ForegroundColorSpan(Color.GREEN), 0, 5, 0);
tv.setText(ss);
答案 1 :(得分:10)
在4.x之前,你可以这样做:
<string name="error"><font fgcolor="#ff9a1d1d">Error!</font></string>
然而,bug https://code.google.com/p/android/issues/detail?id=58192打破了这个功能,因为它引入了一个整数解析器,无法处理具有最高位设置的数字,不幸的是你不能省略颜色的不透明部分(大多数人都会我喜欢在这个例子中设置为ff。)
我昨天刚刚学会了巧妙的解决方法。你所做的是否定二进制补码中的十六进制颜色值。如何执行此操作取决于您的十六进制计算器,但最简单的方法是从0x100000000中减去颜色。在您的情况下,这将导致0x100000000 - 0xff9a1d1d = 0x65e2e3。 (或者你可以将它反转,例如0065e2e2,它足够接近)。然后用减号再次否定这一点:
<string name="error"><font fgcolor="-#65e2e3">Error!</font></string>
和voilla!你有你想要的颜色。
感谢TWiStErRob在https://stackoverflow.com/a/11577658/338479
中搞清楚这一点ETA:我刚刚发现如果你在2.x系统上这样做会导致你的应用程序崩溃;它抛出一个NumberFormat异常
答案 2 :(得分:6)
将此代码放在string.xml
文件中:
<font color="Red"><a href="support@legacystories.org">HERE</a></font>
答案 3 :(得分:5)
不可能,您必须在布局中指定。但是你可以把颜色放在colors.xml中。
<强> colors.xml 强>
<color name="foo">#abc123</color>
<强> your_layout.xml 强>
<TextView android:textColor="@color/foo" android:text="@string/error" />
答案 4 :(得分:5)
试试这个
<string name="some_text">Font color is <font fgcolor="#ffff0000">red</font></string>
答案 5 :(得分:5)
可能试试这个..
<强> string.xml 强>
<string name="colorText"><![CDATA[ Give your string here. Like, This sentence has a<b><font color=#FF0000>Red color</b> text.]]></string>
<强> ExampleClass.java 强>
TextView colorTextView = (TextView)findViewById(R.id.colorText);
String customColorText = getResources().getString(R.string.colorText)
colorTextView.setText(Html.fromHtml(customColorText));
快乐的编码....
答案 6 :(得分:3)
在colors.xml文件中使用值
创建颜色 <color name ="red">#ff0000</color>
在strings.xml中执行类似
的操作 <string name="some_text">The next word is <font fgcolor="red">red</font> but that is all</string>
我发现我无法直接在strings.xml中使用十六进制代码
答案 7 :(得分:3)
的strings.xml
<string name="pbs_setup_title">Select %1$s <font fgcolor="#FF33B5E5">brand</font> or scan the <font fgcolor="#FFFF0000">Remote</font></string>
class.java
String SelectedDeviceType_Str = "TV"
SetupYourDevice_TextView.setText(Html.fromHtml(String.format(Html.toHtml(new SpannedString(getResources().getText(R.string.pbs_setup_title))),
SelectedDeviceType_Str)));
答案 8 :(得分:3)
根据我的经验,我将strings.xml中的颜色存储为
<强>
<color name="name_color">#ffffff</color>
强>
当我有一个View并设置`
时<强> nameView.setBackgroundColor(R.color.name_color); 强>
没关系。
但是当我为文本设置颜色时
<强> name_TextView.setTextColor(R.color.name_color); 强>
它不是效果。
如果您遇到同样的问题,请设置
name_TextView.setTextColor(Color.parseColor(&#34;您想要的颜色代码hexa&#34;));
希望有所帮助。
答案 9 :(得分:1)
我希望对您有帮助。
TextView textView=findViewById(R.id.text);
String error= getResources().getString(R.string.error);
ForegroundColorSpan fgColor=new ForegroundColorSpan(Color.RED); // here set the color of Text
SpannableString ss=new SpannableString(error); //here set the text to spannableString
ss.setSpan(fgColor,0,error.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //here which color , when to where you will set the color
textView.setText(ss);
Android中的SpannableString是什么?
Android SpannableString示例。 android中的SpannableString是在TextView中设置字符串样式的绝佳方法。简而言之,它允许TextView为文本的不同区域提供不同的样式。
答案 10 :(得分:0)
在Strings.xml中:
<resources>
<color name="etDisabled">#ac8888</color>
<color name="myorange">#f56415</color>
<color name="mygreen">#95cd08</color>
</resources>
然后在代码中:
TextView myText = (TextView) findViewById(R.id.tvJugador1);
myText.setTextColor(R.color.mygreen);
答案 11 :(得分:0)
您可以通过
string.xml
更改文字颜色:
<string name="completed_running_not_alloted"><font fgcolor="#6DC287">Completed /</font><font fgcolor="#FFCC29"> Running /</font> Not Alloted</string>
如果您想以编程方式设置文本,那么您可以使用它 动态渲染文本颜色。
private SpannableStringBuilder setSpan(int completed, int running){
SpannableStringBuilder span1 = new SpannableStringBuilder(completed+" / ");
ForegroundColorSpan color1=new ForegroundColorSpan(Color.parseColor("#6DC287"));
span1.setSpan(color1, 0, span1.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
SpannableStringBuilder span2 = new SpannableStringBuilder(running+"");
ForegroundColorSpan color2=new ForegroundColorSpan(Color.parseColor("#FFCC29"));
span2.setSpan(color2, 0, span2.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
Spanned concatenated=(Spanned) TextUtils.concat(span1, span2);
return new SpannableStringBuilder(concatenated);
}
答案 12 :(得分:0)
是否可以直接在string.xml中设置字符串的颜色?
是的,有可能...
不要使用十六进制代码或您在颜色中定义的颜色!在 Android Studio 中使用默认颜色。 RED WHITE BLACK 和自动建议的颜色像这样。如果使用十六进制代码,在 api 19 之前的 api 中文本将不可见
<string name="try"><font color="RED">This is blue color words </font> this default color words</string>
Android Stduio 的其他 HTML 代码
<string name="try2"><b>Bold style words</b> And this not bold ;) </string>
<string name="try3"><u>Underline style words</u> And this not underline </string>
<string name="try4"><i>italic style words</i> And this not underline </string>
来源:https://developer.android.com/guide/topics/resources/string-resource.html#escaping_quotes