定义:
在XML中定义的一个可绘制(drawable)的对象,它可以根据状态的不同为同一个图形更换不同的图片。比如说,对于一个按钮控件(Button)可以有几种不同的状态(pressed,focused或者其它),你可以使用state
list为其中的每一个状态来设置按钮的背景图片。
XML的位置:
android的selector是在res/drawable/中配置的
标签与属性:
android:constantSize 这个是布尔型,false表示各个状态的大小(size)各自不同,true表中所有的状态大小相同(以最大的为准)。默认为false
android:dither 布尔型。true表示,如果一个屏幕中位图有这不同的像素配置,启用位图的抖动。false表示不启用位图的抖动。据度娘:dither,抖动,是一种故意造成的噪音用以随机化量化误差,阻止大幅度拉升图像时导致的像banding(色带)这样的问题。
android:variablePadding 布尔型。选择true时,drawable的内边距会根据状态的变化而变化,设置为true时,你必须为不同的状态配置layout,但是通常不建议这么做。选择false时,内边距保持一致,所有状态中最大的内边距。默认为false
android:enterFadeDuration/android:exitFadeDuration
Drawable有多种状态时,可以定义它展示前的淡入淡出。
在item标签中,我们可以配置一下几种属性 :
绿色字体:重点
android:drawable |
这个属性是必须的,为当前控件指定资源。 |
android:state_pressed |
布尔值。true指当用户点击或者触摸该控件的状态。默认为false |
android:state_focused |
布尔值。ture指当前控件获得焦点时的状态。默认为false |
android:state_hovered |
布尔值。true表示光标移动到当前控件上的状态。默认为false |
android:state_selected |
布尔值。true表示被选择的状态,例如在一个下拉列表中用方向键下选择其中一个选项。 这个和focus的区别,selected是focus不充分的情况。比如一个listview获得焦点(focus),而用方向键选择了其中的一个item(selected) |
android:state_checkable |
布尔值。ture表示可以被勾选的状态。这个仅在当控件具有被勾选和不被勾选的状态间转换时才起作用。 |
android:state_checked |
布尔值。true表示当前控件处于被勾选(check的状态) |
android:state_enabled |
布尔值。true表示当前控件出于可用的状态。比如可以被点击 |
android:state_activated |
布尔值。true表示当前控件被激活的状态。 |
android:state_window_focused |
布尔值。true表示当前控件出于最前端时,应用窗口获得焦点的状态。 |