我的意思是:
<string name="error" color="#9a1d1d">Error!</string>
正如 rekire 所建议的那样,无法按照您的方式设置颜色。
您可以使用 rekire 建议的方法。
在您的 xml 中,您可以将 textview 的颜色指定为
android:textColor="#0EFFFF"
您还可以以编程方式设置文本颜色
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);
在 4.x 之前,您可以这样做:
<string name="error"><font fgcolor="#ff9a1d1d">Error!</font></string>
但是,错误https://code.google.com/p/android/issues/detail?id=58192破坏了此功能,因为它引入了一个整数解析器,该解析器无法处理具有最高位集的数字,不幸的是你可以' t 省略颜色的不透明度部分(大多数人更愿意将其设置为 ff,如本例所示。)
我昨天才学会了一个聪明的解决方法。你所做的是否定二进制补码中的十六进制颜色值。你如何做到这一点取决于你的十六进制计算器,但最简单的方法是从 0x100000000 中减去你的颜色。在您的情况下,这将导致 0x100000000 - 0xff9a1d1d = 0x65e2e3。(或者您可以将其反转,例如 0065e2e2 足够接近)。然后你用减号再次否定它:
<string name="error"><font fgcolor="-#65e2e3">Error!</font></string>
瞧!你有你想要的颜色。
感谢 TWiStErRob 在https://stackoverflow.com/a/11577658/338479中解决这个问题
ETA:我刚刚发现如果您在 2.x 系统上执行此操作会使您的应用程序崩溃;它抛出一个 NumberFormat 异常
试试这个
<string name="some_text">Font color is <font fgcolor="#ffff0000">red</font></string>
将此代码放入string.xml
文件中:
<font color="Red"><a href="support@legacystories.org">HERE</a></font>
Its possible try this..
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));
字符串.xml
<string name="pbs_setup_title">Select %1$s <font fgcolor="#FF33B5E5">brand</font> or scan the <font fgcolor="#FFFF0000">Remote</font></string>
类.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)));
不,这是不可能的,您必须在布局中指定。但是您可以将颜色放在您的 colors.xml 中。
颜色.xml
<color name="foo">#abc123</color>
your_layout.xml
<TextView android:textColor="@color/foo" android:text="@string/error" />
在 values.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 中使用十六进制代码
根据我的经验,我在 strings.xml 中存储的颜色看起来像
<color name="name_color">#ffffff</color>
当我有一个视图并设置`
nameView.setBackgroundColor(R.color.name_color);
没关系。
但是当我为文本设置颜色时
name_TextView.setTextColor(R.color.name_color);
这不是效果。
如果你遇到同样的问题,只需设置
name_TextView.setTextColor(Color.parseColor("你想要的颜色代码"));
希望它有所帮助。
我希望这对你有帮助。
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 SpanableString 示例。android 中的 SpannableString 是在 TextView 中设置字符串样式的绝佳方式。简而言之,它允许 TextView 为不同的文本区域提供不同的样式。
您可以通过以下方式更改文本颜色
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);
}
在 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);
是否可以直接在 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