Android Selector全解

html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8" ?>   
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <item android:state_focused="true"  <!-- true非触摸模式下获得焦点时显示图片-->  
  4. android:state_window_focused="true"  <!--true,当此activity获得焦点在最前面时显示该图片;false,当没在最前面时显示该图片。 -->  
  5. android:state_enabled="true" <!--true,当该组件能使用时显示该图片;false,当该组件不能使用时显示该图片。 -->  
  6. android:state_checkable="true" <!--true,当CheckBox能使用时显示该图片;false,当CheckBox不能使用时显示该图片 -->  
  7. android:state_checked="true" <!-- true,当CheckBox选中时显示该图片;false,当CheckBox为未选中时显示该图片-->  
  8. android:state_selected="true" <!--true 选择时显示的图片;false 为选择时的图片(例如用在Tab) -->  
  9. android:state_pressed="true" <!-- true,当被点击时显示该图片;false没被按下时显示图片 ==click-->                                                                    <!--多用于ListView或者切换 -->  
  10. android:state_activated="true" <!--true 被激活时显示图片  ;false未激活时图片-->  
  11. android:state_active="true" <!-- -->  
  12. android:state_single="true" <!-- true 只有一个元素显示图片-->  
  13. android:state_first="true" <!-- -->  
  14. android:state_middle="true" <!-- -->  
  15. android:state_last="true" <!-- -->  
  16. android:state_accelerated="true" <!--true 硬件加速为true的图片 -->  
  17. android:state_hovered="true" <!-- true 鼠标(指针)移动到该位置时图片-->  
  18. android:state_drag_hovered="true"<!-- true 能够drop 或者 drag 鼠标指针移动到该位置图片-->  
  19.  android:state_drag_can_accept="true" <!--true 能够dorp 或者 drag 时图片-->  
  20. android:state_accessibility_focused="true" <!-- -->  
  21. android:drawable="@drawable/icon"<!-- (一般)必备  上文的图片-->  
  22.  />   
  23.   </selector>  

接下来,给出部分使用场景
[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8" ?>     
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">   
  3. <!-- 默认时的背景图片-->    
  4.   <item android:drawable="@drawable/pic1" />      
  5. <!-- 没有焦点时的背景图片 -->    
  6.   <item android:state_window_focused="false"     
  7.         android:drawable="@drawable/pic1" />     
  8. <!-- 非触摸模式下获得焦点并单击时的背景图片 -->    
  9.   <item android:state_focused="true" android:state_pressed="true"   android:drawable"@drawable/pic2" />   
  10. <!-- 触摸模式下单击时的背景图片-->    
  11. <item android:state_focused="false" android:state_pressed="true"   android:drawable="@drawable/pic3" />    
  12. <!--选中时的图片背景-->    
  13.   <item android:state_selected="true"   android:drawable="@drawable/pic4" />     
  14. <!--获得焦点时的图片背景-->    
  15.   <item android:state_focused="true"   android:drawable="@drawable/pic5" />     
  16. </selector>  

当然我们也可以这样
[java]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5.     <item android:state_selected="true" android:color="#FF0000" />  
  6.   
  7.     <item android:state_focused="true" android:color="#00FF00" />  
  8.   
  9.     <item android:state_pressed="true" android:color="#0000FF" />  
  10.   
  11.     <item android:color="#000000" />  
  12.   
  13. </selector>  

或者这样
[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5.     <item android:state_pressed="true">  
  6.   
  7.         <!-- 定义当button 处于pressed 状态时的形态。-->  
  8.   
  9.         <shape>  
  10.   
  11.             <gradient android:startColor="#8600ff" />  
  12.   
  13.             <stroke android:width="2dp" android:color="#000000" />  
  14.   
  15.             <corners android:radius="5dp" />  
  16.   
  17.             <padding android:left="10dp" android:top="10dp"  
  18.   
  19.                 android:bottom="10dp" android:right="10dp" />  
  20.   
  21.         </shape>  
  22.   
  23.     </item>  
  24.   
  25.     <item android:state_focused="true">  
  26.   
  27.         <!-- 定义当button获得focus时的形态-->  
  28.   
  29.         <shape>  
  30.   
  31.             <gradient android:startColor="#eac100" />  
  32.   
  33.             <stroke android:width="2dp" android:color="#333333" color="#ffffff" />  
  34.   
  35.             <corners android:radius="8dp" />  
  36.   
  37.             <padding android:left="10dp" android:top="10dp"  
  38.   
  39.                 android:bottom="10dp" android:right="10dp" />  
  40.   
  41.         </shape>  
  42.   
  43.     </item>  
  44.     <item android:drawable="@drawable/you_picture_name">默认背景</item>  
  45. </selector>  

这里我们给出重点提醒selector  一般用于background
不要忘记
[html]  view plain  copy
  1. android:background="@drawable/you_drawable_xml_name"  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值