Windows平台VC,对于不同的按钮状态,采用不同的颜色显示文字,实现起来比较复杂,一般都得自绘按钮。但是Android里面实现起来非常方便。

我们首先添加一个ColorStateList资源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="#ffff0000"/> <!-- pressed -->    <item android:state_focused="true"          android:color="#ff0000ff"/> <!-- focused -->    <item android:color="#ff000000"/> <!-- default --></selector>

Button btn=(Button)findViewById(R.id.btn);Resources resource=(Resources)getBaseContext().getResources(); ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);if(csl!=null){     btn.setTextColor(color_state_list);//设置按钮文字颜色}


或者也可以这样:
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}


最后附上所有可能出现的状态:
 <?xml version="1.0" encoding="utf-8"?>    <selector xmlns:android="http://schemas.android.com/apk/res/android" >        <item            android:color="hex_color"            android:state_pressed=["true" | "false"]            android:state_focused=["true" | "false"]            android:state_selected=["true" | "false"]            android:state_active=["true" | "false"]            android:state_checkable=["true" | "false"]            android:state_checked=["true" | "false"]            android:state_enabled=["true" | "false"]            android:state_window_focused=["true" | "false"] />    </selector>



更多相关文章

  1. 开关飞行模式
  2. Android(安卓)Intent.FLAG_ACTIVITY_NEW_TASK的说明
  3. 公众号文章目录整理
  4. Android中基本Dialog对话框
  5. Android(安卓)飞行模式的设置(打开/关闭飞行模式,获取飞行状态状
  6. android 绘制图片的一部分
  7. Android(安卓)标题栏和状态栏随ScrollView滑动颜色改变轻松实现
  8. Android4.0有时接收不到开机广播
  9. Android(安卓)沉浸式状态栏 一体化状态栏实现

随机推荐

  1. android国际化(多语言)
  2. Android默认闹钟-铃声-通知提示音修改
  3. android:clipToPadding的使用详解
  4. android:AssetManager
  5. 【转】android AsyncTask 为 多任务 多线
  6. MVP 模式在 Android(安卓)中的使用
  7. Android Context原理分析
  8. 查看android里的数据库的内容的方法
  9. [置顶] Android(安卓)Handler Message Lo
  10. android 通过schema唤起应用指定页面