Android 字体标记为的字符串资源不工作
我需要帮助显示从下一个字符串资源到文本视图的颜色Android 字体标记为的字符串资源不工作,android,html,string,Android,Html,String,我需要帮助显示从下一个字符串资源到文本视图的颜色 <string name="colored"> <b>Something working perfectly</b> <font color="#F38">Something that doesn't work</font> </string> <TextView android:layout_width="wrap_content" android:
<string name="colored">
<b>Something working perfectly</b>
<font color="#F38">Something that doesn't work</font>
</string>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/colored"
/>
完美工作的东西
不起作用的东西
您必须以编程方式进行设置,如下所示:
((TextView)findViewById(R.id.yourTextViewId)).setText(Html.fromHtml(getResources().getString(R.string. colored)));
XML:
string.xml:
<string name="colored"><![CDATA[
<b>Something working perfectly</b>
<font color="#F38">Something that doesn't work</font>
]]></string>
工作正常的东西
不起作用的东西
]]>
为什么不在资源文件中定义一种颜色,然后在布局文件中使用它呢
可以通过在colors.xml文件(位于values文件夹中)上定义以下内容来实现:
字体颜色标签在Android的字符串资源中无法正常工作。这是因为解析格式为“#AARRGGBB”的颜色时出现错误。它使用Integer.parseInt(源代码,16)来解析它(在com.android.internal.util.XmlUtils.convertValueToInt()方法中),它只接受带符号的int(因此可以使用从#7fffffffff到#-7FFFFFFF的范围)。 基本上,使用Long.parse()替换Color.parse(),然后从中生成整数 此外,您不能使用自己的颜色资源作为字符串中字体颜色的引用,因为它使用System.getResources()方法查找颜色资源。所以只有“android:color/[colorname]”可以工作 总之,在字体标记中,您可以:
Hello world代码>
Hello world代码>
Hello world代码>其中#-0000FF00类似于#FFFF0100
Hello world!]]>代码>
<string name="colored"><![CDATA[
<b>Something working perfectly</b>
<font color="#F38">Something that doesn't work</font>
]]></string>
<color name="black">#000000</color>
android:textColor="@color/black"