我是android的新手,想知道如何在string标签中更改strings.xml文件中的字体颜色.
例如我有:
<string name="hello_world">Hello world!</string>
Run Code Online (Sandbox Code Playgroud)
我只是显示为红色和蓝色
感谢名单
我的意思是:
<string name="error" color="#9a1d1d">Error!</string>
Run Code Online (Sandbox Code Playgroud) 正如问题所说:在运行Android 4.3+的设备上测试应用程序(也在4.4上测试)时,提示的颜色(对于EditText)变为白色,无论我将其设置为什么颜色,它都保持白色.由于EditText的背景为白色,因此肉眼看不到提示!
我用谷歌搜索和谷歌搜索,找不到任何人有同样的问题.该应用程序是使用android:minSdkVersion="8"和构建的android:targetSdkVersion="15".EditText看起来像这样:
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/my_background"
android:ems="10"
android:textColorHint="@color/BlueViolet"
android:hint="@string/my_hint"
android:inputType="number"
android:tag="21_0" />
Run Code Online (Sandbox Code Playgroud)
起初它是使用默认值android:textColorHint,我认为可能Android 4.3+由于某种原因将默认值更改为白色.但事实并非如此,因为无论我设定的颜色是什么,它总是白色的.
我知道这fill_parent已被弃用,但该应用程序很久以前就已经构建,但由于提示消失而现在无法使用.任何帮助表示赞赏!谢谢!
编辑:使用字符串资源提示时似乎发生'错误'.这有效:android:hint="Hello world"虽然这不行android:hint="@string/my_hint"
我曾经能够做到这一点:
<string name="foo">white <font fgcolor="#ff6890a5">blue</font></string>
Run Code Online (Sandbox Code Playgroud)
但现在它不再起作用了.它似乎是整数解析代码中的一个错误; 请参阅https://code.google.com/p/android/issues/detail?id=58192
问题是,我收到客户的投诉现在 ; 我不能等待修复bug.
有没有人知道解决方法,例如使用color.xml中的命名资源或类似的东西?
ETA:我发现它fgcolor="blue"仍然有效,但它是错误的蓝色阴影.某处是否有合法颜色名称列表?也许我能找到一个足够接近的人.如果颜色是没有高位设置的数字,它也可以工作#7f6890a5,但当然这太微弱而无用; 我需要纯色,而不是半透明.
ETA:浏览源代码显示以下颜色:
aqua 0x00FFFF
black 0x000000
blue 0x0000FF
fuchsia 0xFF00FF
green 0x008000
grey 0x808080
lime 0x00FF00
maroon 0x800000
navy 0x000080
olive 0x808000
purple 0x800080
red 0xFF0000
silver 0xC0C0C0
teal 0x008080
white 0xFFFFFF
yellow 0xFFFF00
Run Code Online (Sandbox Code Playgroud)
这并不能解决我的问题,但也许其他人在这个问题上搜索可能会发现这些信息很有用.
我找到了一些关于如何更改存储在strings.xml中的字符串的特定字符和单词的颜色的解决方案,但是,它对我不起作用.我有以下字符串
<string name="my_string">
Humpty Dumpty sat on a <font fgcolor="#FF0000">wall</font> Humpty Dumpty had a great <font fgcolor="#FF0000">fall</font></string>
Run Code Online (Sandbox Code Playgroud)
我期待着墙壁和秋天的颜色是#FF0000(红色)的颜色,然而,它们根本不显示.经过进一步的研究,我了解到你必须声明alpha通道,然后我将我的字符串更新为
<string name="my_string">
Humpty Dumpty sat on a <font fgcolor="#FFFF0000">wall</font> Humpty Dumpty had a great <font fgcolor="#FFFF0000">fall</font></string>
Run Code Online (Sandbox Code Playgroud)
我声明的alpha通道完全不透明,但结果保持不变.
最后,我也尝试过使用CDDATA,这是我的尝试.
<string name="my_string"><![CDATA[
Humpty Dumpty sat on a <font color=\'#FF0000\'>wall</font> Humpty Dumpty had a great <font color=\'#FF0000\'>fall</font>]]</string>
Run Code Online (Sandbox Code Playgroud)
还有什么我做错了?提前致谢!