更改TextView字体颜色

本文详细介绍了如何在Android中设置TextView的字体颜色,包括在布局文件中直接设置、使用drawable或color资源,以及在程序中通过setTextColor()方法设置。同时,文章还介绍了如何使用ColorStateList对象设置不同状态下的字体颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

运行效果如下

默认状态:


选中状态:


附录:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值