高亮显示一个技巧
2011-11-17 20:13
253 查看
在android应用程序里,view被focus,或者press,touch背景都会有高亮显示背景,其实这就是图片替换而已,这个可以到sdk里面找到android-sdk-windows\platforms\android-8\data\res\drawable
btn_default.xml文件里面:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_normal_disable" />
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_selected" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_normal_disable_focused" />
<item
android:drawable="@drawable/btn_default_normal_disable" />
</selector>
我们应用程序很多高亮显示,normal背景都是可以替换的,这个目录下有很多这样的xml文件,button,checkbox,EditText等等图片都可以替换。
有一次,我参与一个项目,normal背景是没有的,需求只给了高亮背景,这个时候我在xml文件填写@null,或者没有写<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />这个item,结果编译不过去。
一时间还真没有办法,产品需求那边又不好反驳,毕竟自己还嫩,只能哑巴吃黄连。
后来有一个ListView要去掉选中背景高亮显示,我到网上找了下资料,可以用背景透明来做:
android:drawable="@android:color/transparent"
后来我灵机一动,克不可以也用背景透明来代替normal背景,于是说试就试,结果编译过了,能运行,ok
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@android:color/transparent" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@android:color/transparent" />
<item android:state_pressed="true" android:drawable="@drawable/personal_box_pressed" />
<item android:state_enabled="true" android:drawable="@android:color/transparent" />
<item android:state_focused="true" android:drawable="@drawable/personal_box_pressed" />
</selector>
btn_default.xml文件里面:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_normal_disable" />
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_selected" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_normal_disable_focused" />
<item
android:drawable="@drawable/btn_default_normal_disable" />
</selector>
我们应用程序很多高亮显示,normal背景都是可以替换的,这个目录下有很多这样的xml文件,button,checkbox,EditText等等图片都可以替换。
有一次,我参与一个项目,normal背景是没有的,需求只给了高亮背景,这个时候我在xml文件填写@null,或者没有写<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />这个item,结果编译不过去。
一时间还真没有办法,产品需求那边又不好反驳,毕竟自己还嫩,只能哑巴吃黄连。
后来有一个ListView要去掉选中背景高亮显示,我到网上找了下资料,可以用背景透明来做:
android:drawable="@android:color/transparent"
后来我灵机一动,克不可以也用背景透明来代替normal背景,于是说试就试,结果编译过了,能运行,ok
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@android:color/transparent" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@android:color/transparent" />
<item android:state_pressed="true" android:drawable="@drawable/personal_box_pressed" />
<item android:state_enabled="true" android:drawable="@android:color/transparent" />
<item android:state_focused="true" android:drawable="@drawable/personal_box_pressed" />
</selector>
相关文章推荐
- android 高亮显示一个技巧
- 关于如何使用VS高亮显示无扩展名源码文件的一个小技巧
- eclipse点击一个变量使相同名称变量高亮显示的方法
- eclipse点击一个变量使相同名称变量高亮显示的方法
- 关于UIBotton的高亮显示图片的一个小问题
- 关于如何使用VS高亮显示无扩展名源码文件的一个小技巧
- eclipse点击一个变量使相同名称变量高亮显示的方法
- 一个小技巧 如果SRC里的图片没有,则显示ONERROR里的
- 在Eclipse 中,选择一个变量名,其他相同变量名都高亮阴影显示 的设置
- 如何高亮显示一个元素,方便调试
- arcengine 经典代码(转) 空间查询 在一个图层上画一个polygon,根据该polygon查询出图层上与之相交的polygon并高亮显示出来
- 关于如何使用VS高亮显示无扩展名源码文件的一个小技巧
- myeclipse点击一个变量使相同名称变量高亮显示的方法
- MyEclipse开发工具,当选中一个单词时,其他相同的单词会被高亮显示(选中/标记)
- 用Delphi编写一个简单的文本编辑器,怎样实现关键字高亮显示?
- 一个可以选中当前菜单后高亮显示的导航条
- InstallShield做的一个安装包,cancel高亮显示问题
- vim使用技巧之一: 取消搜索高亮显示
- myeclipse高亮显示同一个变量
- eclipse点击一个变量使相同名称变量高亮显示的方法