一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">
  3. <!--没有焦点时的背景图片-->
  4. <itemandroid:drawable="@drawable/handle_normal"android:state_enabled="true"android:state_window_focused="false"/>
  5. <!--触摸模式按下时的背景图片-->
  6. <itemandroid:drawable="@drawable/handle_pressed"android:state_pressed="true"/>
  7. <itemandroid:drawable="@drawable/handle_focused"android:state_enabled="true"android:state_focused="true"/>
  8. <itemandroid:drawable="@drawable/handle_normal"android:state_enabled="true"/>
  9. <!--获得焦点时的图片背景-->
  10. <itemandroid:drawable="@drawable/handle_focused"android:state_focused="true"/>
  11. <!--
  12. android:state_selected是选中
  13. android:state_focused是获得焦点
  14. android:state_pressed是点击
  15. android:state_enabled是设置是否响应事件,指所有事件
  16. -->
  17. </selector>


.使用xml文件:

1.方法一:listview中配置android:listSelector="@drawable/xxx
或者在listviewitem中添加属性android
background="@drawable/xxx"

2.方法二:Drawable drawable = getResources().getDrawable(R.drawable.xxx);
ListView.setSelector(drawable);
但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"
使其透明。

相关属性:

android:state_selected是选中
android:state_focused
是获得焦点
android:state_pressed
是点击
android:state_enabled
是设置是否响应事件,指所有事件

根据这些状态同样可以设置buttonselector效果。也可以设置selector改变button中的文字状态。


以下是配置button中的文字效果:
drawable/button_font.xml

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">
  3. <itemandroid:state_selected="true"android:color="#FFF"/>
  4. <itemandroid:state_focused="true"android:color="#FFF"/>
  5. <itemandroid:state_pressed="true"android:color="#FFF"/>
  6. <itemandroid:color="#000"/>
  7. </selector>

Button还可以实现更复杂的效果,例如渐变
drawable/button_color.xml

[html] view plain copy
  1. <spanstyle="color:#330033;"><?xmlversion="1.0"encoding="utf-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">/
  3. <itemandroid:state_pressed="true">//定义当button处于pressed状态时的形态。
  4. <shape>
  5. <gradientandroid:startColor="#8600ff"/>
  6. <strokeandroid:width="2dp"android:color="#000000"/>
  7. <cornersandroid:radius="5dp"/>
  8. <paddingandroid:left="10dp"android:top="10dp"
  9. android:bottom="10dp"android:right="10dp"/>
  10. </shape>
  11. </item>
  12. <itemandroid:state_focused="true">//定义当button获得focus时的形态
  13. <shape>
  14. <gradientandroid:startColor="#eac100"/>
  15. <strokeandroid:width="2dp"android:color="#333333"color="#ffffff"/>
  16. <cornersandroid:radius="8dp"/>
  17. <paddingandroid:left="10dp"android:top="10dp"
  18. android:bottom="10dp"android:right="10dp"/>
  19. </shape>
  20. </item>
  21. </selector></span><spanstyle="color:#ff0000;"></span>

最后,需要在包含buttonxml文件里添加两项。例如main.xml文件,需要在<Button />里加两项 androidfocusable="true"android:background="@drawable/button_color"这样就把drawale/button_color.xml文件与这个控件关联起来了。

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Dalvikvm:在Android平台上执行.class文件
  6. Android下的数据储存方式
  7. Android自定义Dialog(仿QQ同步助手退出对话框)
  8. 将项目导入到eclipse中后会出现这个问题,提示找不到下列文件: impo
  9. android用webview加载H5页面出现点击事件失效的问题解决

随机推荐

  1. SQLServer存储过程创建和修改的实现代码
  2. Sql Server临时表和游标的使用小结
  3. SQL查询方法精华集
  4. SQLServer中使用扩展事件获取Session级别
  5. Sql Server数据库各版本功能对比
  6. SQL Server 常用函数使用方法小结
  7. SQL Server中关于基数估计计算预估行数的
  8. SQL Server 公用表表达式(CTE)实现递归的
  9. MSSQL 2008 自动备份数据库的设置方法
  10. sql中的 where 、group by 和 having 用