更改TextView字体颜色
新建一个继承Activity类的TextViewColorActivity,并设置布局文件为:textviewcolor.xml。
要设置TextView的字体颜色,可以直接在布局文件中进行设置(android:textColor)。如:
<TextView android:id="@+id/textviewcolor_tv01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/textviewcoloractivity" android:textColor="#FFFFFF00" android:textSize="24sp" /> |
效果:
也可以直接使用drawable或者color来设置文字的颜色。
<color name="textviewcolor">#FFFFFF00</color> |
或者
<drawable name="textviewcolor">#FFFFFF00</drawable> |
效果都是一样的。
如果需要在程序中设置文字的颜色,需要先得到TextView的实例对象,而后调用TextView的setTextColor()方法来设置字体颜色。在setTextColor()方法中,需要传递一个int类型的参数。而这个参数可以通过Color类的几个静态参数中获取到一些常见的颜色。如:
TextView tv = (TextView) super.findViewById(R.id.textviewcolor_tv01); tv.setTextColor(Color.YELLOW); |
运行效果是一样的。
此外,TextView的setTextColor()中还有可以传入一个ColorStateList的对象,此对象保存了一组TextView各个状态下的颜色集合。如:
tv.setClickable(true); tv.setTextColor(getResources().getColorStateList( R.color.textviewcolor_textbackground)); |
或者:
tv.setClickable(true); try{ tv.setTextColor(ColorStateList.createFromXml(getResources(),getResources().getXml(R.color.textviewcolor_textbackground))); } catch (Exception e) { e.printStackTrace(); } |
其中R.color.textviewcolor_textbackground文件定义了各个状态下的颜色。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/RED" android:state_pressed="true"/> <item android:color="@color/RED" android:state_focused="true"/> <item android:color="@color/YELLOW"/>
</selector> |
运行效果如下
默认状态:
选中状态:
附录: