Android ColorStateList可以添加xml文件可以结合selector使背景颜色变化更加自由。


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

selector的基本含义和用法可以参照我的另一篇博客,

两种方式进行调用:

1.Buttonbtn=(Button)findViewById(R.id.btn);

Resourcesresource=(Resources)getBaseContext().getResources();

ColorStateListcsl=(ColorStateList)resource.getColorStateList(R.color.button_text);

if(csl!=null){

btn.setTextColor(color_state_list);//设置按钮文字颜色

}

2.

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
}

就可以实现button或者text的按下或者不按下颜色的更换。


可能好多人都遇到过这种问题,就是给button设置颜色的时候,设置的颜色失效,出现黑色或者其他颜色,然后好多人就用colorstatelist进行替代,其实原因是参数调用不正确导致。


第1种:tv.setTextColor(android.graphics.Color.RED);//系统自带的颜色类




第2种:tv.setTextColor(0xffff00ff);//0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x是代表颜色整数的标记,ff是表示透明度,ff00ff表示颜色,注意:这里ffff00ff必须是8个的颜色表示,不接受ff00ff这种6个的颜色表示。



第3种:tv.setTextColor(this.getResources().getColor(R.color.red));//通过获得资源文件进行设置。根据不同的情况R.color.red也可以是R.string.red或者R.drawable.red,当然前提是需要在相应的配置文件里做相应的配置,如:

<color name="red">#FF0000</color>

< drawable name="red">#FF0000</drawable>

< string name="red">#FF0000</string>

注意上面的第三种方法,千万不能把自己定义的颜色直接当成参数,例如:

tv.setTextColor(R.color.red);这种情况会出现颜色错误!



若有问题请留言,若转载注明出处。

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)CircleMenu 圆形旋转菜单
  6. Android(安卓)GET,POST向服务器端发送数据(发送)
  7. Android(安卓)Studio关联源代码
  8. Android(安卓)常用技术框架的基本使用
  9. Retrofit +OKHttp简单封装使用

随机推荐

  1. C#开发Android应用的必备——Mono for An
  2. Android(安卓)应用设置全局Exception处理
  3. Android布局控件属性
  4. android使用android:ellipsize="end"无效
  5. Android布局文件中常用的属性
  6. Mac系统下android studio无法识别手机
  7. Android Studio系列(三)Version Control I
  8. Android中如何解决输入法键盘和activity
  9. 详解 Android 的 Activity 组件
  10. [置顶] Android 安装详解---Mr.Zhang