在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>


更多相关文章

  1. Android之MediaPlayer 音频播放
  2. libxml2 的一个简单测试示例
  3. android之XMPP过程分析(连接、文件监听、登录、异常重连)
  4. Android实现多线程下载文件的方法
  5. 关于Android(安卓)5.0 网络图标叹号的解决办法
  6. android studio 更改 app 包名和包的长度
  7. Android(安卓)OpenCV:读取Matlab生成的.mat文件并转换成OpenCV的M
  8. Android超级终端文件处理命令
  9. ubuntu下反翻译android apk

随机推荐

  1. 关于真机测试的android选择图片在ImageVi
  2. Android(安卓)7.1.1 通话记录数据库详解
  3. Android(安卓)高仿【优酷】圆盘旋转菜单
  4. 数据科学工作加油站
  5. android之SlidingDrawer实现抽屉效果
  6. Android中判断手机是否已经Root
  7. android绘图坐标
  8. android nine patch图片
  9. Android(安卓)Wear开发 - 数据通讯 - 第
  10. Android和iPhone及Windows Mobile,Palm P