如何在TextView的各种状态(聚焦,按下,启用)上应用颜色?
我已经提到了这个:http://developer.android.com/reference/android/content/res/ColorStateList.html,但不知道如何将颜色状态列表应用到TextView?或者还有其他方法吗?
我想更改背景颜色。
答案 0 :(得分:34)
在res / color目录下创建xml。
示例文件名:selector_white_gray.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/Gray"/> <!-- pressed -->
<item android:color="@color/White"/> <!-- default -->
</selector>
您可以添加更多状态。您可以使用“#ffffff”等颜色代码而不是预定义的“@ color / White”。 Becarefull,使用android:color not android:drawable。此示例在按下文本时更改文本的颜色。将textColor属性设置为上面的选择器。
<TextView
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textColor="@color/selector_white_gray"
android:textSize="18sp"
android:textStyle="bold" >
</TextView>
答案 1 :(得分:15)
创建一个新的xml
(在drawable
文件夹中)。使用颜色,您可以为每个event state指定图像
你可以将这个xml设置为背景
如果您的xml为“res/drawable/abc.xml
”,则将背景设置为
android:background="@drawable/abc"
编辑在状态xml中添加颜色
我们的xml,res/drawable/abc.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@color/gray" />
</selector>
然后在your res\values\strings.xml
<color name="gray">#808080</color>
答案 2 :(得分:0)
如果要更改文本的颜色 - 在res / color文件夹中将其创建为xml(例如res / color / mycolor.xml
然后在TextView中将颜色指定为android:textColor="@color/mycolor"
如需更改背景,请参阅其他答案。
答案 3 :(得分:0)
这很容易。只需拦截所需的事件并写下如:
TextView textView=(TextView)findViewById(R.id.myText);
String s=getString(R.string.myText);
SpannableString ss=new SpannableString(s);
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(ss);
答案 4 :(得分:0)
if [ 1 -ne $(/bin/fuser "$0" 2>/dev/null | wc -w) ]; then
exit 1
fi