Android之Selector详解(背景选择器)

定义:
     在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表示当前控件出于最前端时,应用窗口获得焦点的状态。




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。