在平时项目中经常要做的就是改变按钮的背景颜色、文字验证,文本框也是如此。
我们知道用xml来实现选中效果是非常容易的,而且也简单。xml代码如下:这样的可以直接写在res/color/button_text.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="#1c5e79"/> <!-- pressed --> <item android:state_focused="true" android:color="#1c5e79"/> <!-- focused --> <item android:color="#0b5979"/> <!-- default --> </selector>
xml中只要加一行代码:android:textColor="@drawable/tv_traffic_textcolor_selector"
但是在动态代码中如何使用这个xml呢?
今天主要说的就是如果通过代码来实现这个效果,实现可以用两种方式:
第一种
ColorStateList csl=(ColorStateList)getResources().getColorStateList(R.drawable.tv_traffic_textcolor_selector); if(csl!=null){ holder.tvTrafficTool.setTextColor(csl); }
第二种:
XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text); try { ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp); btn.setTextColor(csl); } catch (Exception e) { // TODO: handle exception }
都是一样的效果。,
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 00:20:12