selector实现按钮选中高亮效果原理
2014-11-10 19:15
323 查看
按钮选中高亮常规代码如下:
通常情况下View可使用的包括state_enabled, state_selected, state_pressed, state_focused, state_hovered等等诸多状态,state_selected就是其中一个。
而对于一个按钮来说,正常情况下state_selected属性对它不起作用,state_selected一般用于ListView之类可以选中Item之类的控件。那么这里是如何利用state_selected属性来实现选中高亮效果的?
看到上面的代码,首先,state_pressed状态在手指触摸中它的属性值为true,自然显示的图片是@drawable/background_pressed,但当我们的手指离开屏幕或相应按钮区域时,state_pressed属性的值即变为false。故此时第一个Item不匹配,系统随即往下匹配其他的Item(匹配的顺利从上到下进行)。若没有第2个Item的话,将匹配到我们的第3个Item,即显示为正常的图片@drawable/background_normal,但我们这里第2个Item放了一个state_selected属性匹配的图片。因此,程序中我们可以通过调用setSelected(true)/setSelected(false)来实现按钮按下后处于选中/非选中的状态。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/background_pressed"> <item android:state_selected="true" android:drawable="@drawable/background_pressed"> <item android:state_enabled="true" android:drawable="@drawable/background_normal"> </selector>
通常情况下View可使用的包括state_enabled, state_selected, state_pressed, state_focused, state_hovered等等诸多状态,state_selected就是其中一个。
而对于一个按钮来说,正常情况下state_selected属性对它不起作用,state_selected一般用于ListView之类可以选中Item之类的控件。那么这里是如何利用state_selected属性来实现选中高亮效果的?
看到上面的代码,首先,state_pressed状态在手指触摸中它的属性值为true,自然显示的图片是@drawable/background_pressed,但当我们的手指离开屏幕或相应按钮区域时,state_pressed属性的值即变为false。故此时第一个Item不匹配,系统随即往下匹配其他的Item(匹配的顺利从上到下进行)。若没有第2个Item的话,将匹配到我们的第3个Item,即显示为正常的图片@drawable/background_normal,但我们这里第2个Item放了一个state_selected属性匹配的图片。因此,程序中我们可以通过调用setSelected(true)/setSelected(false)来实现按钮按下后处于选中/非选中的状态。
相关文章推荐
- 代码实现Selector按钮点击效果
- Android_按钮被按下效果的实现(selector选择器)
- jquery实现选中单选按钮下拉伸缩效果
- jquery实现带单选按钮的表格行选中时高亮显示
- Android selector 最佳写法 用一张图片实现按钮按下和普通效果的样式
- Android按钮点击效果的实现(selector)
- atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结
- C#利用反射技术实现去掉按钮选中时的边框效果
- JQUERY简单按钮轮换选中效果实现方法
- shape selector 实现按钮效果(圆边按钮、背景翻转)
- Android_按钮被按下效果的实现(selector选择器)
- jQuery+CSS实现的高亮显示选中二级菜单效果
- android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现
- JS实现选中当前菜单后高亮显示的导航条效果
- 代码实现Selector按钮点击效果
- Jquery 点击按钮自动高亮实现原理及代码
- jquery实现带单选按钮的表格行选中时高亮显示
- jQuery+CSS实现的高亮显示选中二级菜单效果
- 在UNITY中按钮的高亮用POINT灯实现,效果别具一番风味
- JS实现选中当前菜单后高亮显示的导航条效果