TextView---自定义样式

有时候需要自定义一个按钮,用textview也可以实现
(1)创建一个供TextView使用的背景selector并且放到drawable文件夹下面

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <!-- 填充的颜色 -->
            <solid android:color="@android:color/white"></solid>
            <!-- android:radius 弧形的半径 -->
            <corners android:radius="6px" />
            <!-- 绘制边框-->
            <stroke android:width="2px" android:color="#2c72ac" android:dashGap="0dp" />
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
            <corners android:radius="6px" />
            <stroke android:width="2px" android:color="#3c99e5" android:dashGap="0dp" />
        </shape>
    </item>
</selector>

(2)创建一个供TextView使用的动态改变字体颜色的selector并且放到color文件夹(没有可以在res文件夹下新建color文件夹)下面:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/blue_3C99E5" android:state_focused="true"></item>
    <item android:color="@color/blue_3C99E5" android:state_pressed="true"></item>
    <item android:color="@color/blue_CCCCCC"></item>

</selector>

注意:item是从上往下匹配的,如果匹配到一个item那它就将采用这个item,所以设置默认的状态,一定要写在最后,如果写在前面,则后面所有的item都不会起作用
(3)在xml中调用:

<TextView
android:id="@+id/famousperson_listview_tv_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关注"      
android:drawableLeft="@drawable/famousperson_add_like_drawableleft"
android:paddingTop="6dip"
android:paddingBottom="6dip"
android:paddingLeft="9dip"
android:paddingRight="9dip"
android:textSize="12sp"
android:textColor="@color/famousperson_tv_eachother_color"
android:background="@drawable/famousperson_button_bg_liked" />

(4)在代码中调用:

viewHolder.tv_like.setBackgroundResource(R.drawable.famousperson_button_bg_haslike);
viewHolder.tv_like.setCompoundDrawables(viewHolder.dw_addlike, null, null, null);
viewHolder.tv_like.setText("关注");
ColorStateList csl = context.getResources().getColorStateList(R.color.famousperson_tv_like_color);
viewHolder.tv_like.setTextColor(csl);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值