更改TextView字体颜色

更改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" />

效果:

更改TextView字体颜色_第1张图片

也可以直接使用drawable或者color来设置文字的颜色。

   <color name="textviewcolor">#FFFFFF00color>

或者

   <drawable name="textviewcolor">#FFFFFF00drawable>

效果都是一样的。

如果需要在程序中设置文字的颜色,需要先得到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>

 

运行效果如下

默认状态:

更改TextView字体颜色_第2张图片

选中状态:

更改TextView字体颜色_第3张图片

附录:

更改TextView字体颜色_第4张图片

你可能感兴趣的:(更改TextView字体颜色)