状态选择器
2016-06-23 10:32
225 查看
相关属性:
Android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<item android:drawable="@drawable/pic1" />
<!-- 没有焦点时的背景图片 -->
<item android:state_window_focused="false"
android:drawable="@drawable/pic1"
/>
<!--选中时的图片背景-->
<item android:state_selected="true" android:drawable="@drawable/pic4"
/>
<!--获得焦点时的图片背景-->
<item android:state_focused="true" android:drawable="@drawable/pic5"
/>
<!--点击时的图片背景-->
<item android:state_pressed="true"
android:drawable="@drawable/select" />
</selector>
二.使用xml文件:
1.方法一:在listview中配置android:listSelector="@drawable/xxx
或者在listview的item中添加属性android:background="@drawable/xxx"
2.方法二:Drawable
drawable = getResources().getDrawable(R.drawable.xxx);
ListView.setSelector(drawable);但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"使其透明。
是配置button中的文字效果:
<Button android:textColor="@drawable/button_fon
c125
t" />
drawable/button_font.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#0FF" />
<item android:state_focused="true" android:color="#FF0" />
<item android:state_pressed="true" android:color="#F0F"
/>
<item android:color="#000" />
</selector>
Button还可以实现更复杂的效果,例如渐变
drawable/button_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> /
<item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
<shape>
<gradient android:startColor="#8600ff" />
<stroke android:width="2dp"
android:color="#000000" />
<corners android:radius="5dp" />
<padding android:left="10dp" android:top="10dp" android:bottom="10dp"
android:right="10dp"/>
</shape>
</item>
<item android:state_focused="true">//定义当button获得 focus时的形态
<shape>
<gradient android:startColor="#eac100"/>
<stroke android:width="2dp" android:color="#333333" color="#ffffff"/>
<corners android:radius="8dp" />
<padding android:left="10dp" android:top="10dp" android:bottom="10dp" android:right="10dp"/>
</shape>
</item>
</selector>
最后,需要在包含 button的xml文件里添加两项。例如main.xml 文件,需要在<Button
/>里加两项android:focusable="true" android:background="@drawable/button_color"
Android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<item android:drawable="@drawable/pic1" />
<!-- 没有焦点时的背景图片 -->
<item android:state_window_focused="false"
android:drawable="@drawable/pic1"
/>
<!--选中时的图片背景-->
<item android:state_selected="true" android:drawable="@drawable/pic4"
/>
<!--获得焦点时的图片背景-->
<item android:state_focused="true" android:drawable="@drawable/pic5"
/>
<!--点击时的图片背景-->
<item android:state_pressed="true"
android:drawable="@drawable/select" />
</selector>
二.使用xml文件:
1.方法一:在listview中配置android:listSelector="@drawable/xxx
或者在listview的item中添加属性android:background="@drawable/xxx"
2.方法二:Drawable
drawable = getResources().getDrawable(R.drawable.xxx);
ListView.setSelector(drawable);但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"使其透明。
是配置button中的文字效果:
<Button android:textColor="@drawable/button_fon
c125
t" />
drawable/button_font.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#0FF" />
<item android:state_focused="true" android:color="#FF0" />
<item android:state_pressed="true" android:color="#F0F"
/>
<item android:color="#000" />
</selector>
Button还可以实现更复杂的效果,例如渐变
drawable/button_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> /
<item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
<shape>
<gradient android:startColor="#8600ff" />
<stroke android:width="2dp"
android:color="#000000" />
<corners android:radius="5dp" />
<padding android:left="10dp" android:top="10dp" android:bottom="10dp"
android:right="10dp"/>
</shape>
</item>
<item android:state_focused="true">//定义当button获得 focus时的形态
<shape>
<gradient android:startColor="#eac100"/>
<stroke android:width="2dp" android:color="#333333" color="#ffffff"/>
<corners android:radius="8dp" />
<padding android:left="10dp" android:top="10dp" android:bottom="10dp" android:right="10dp"/>
</shape>
</item>
</selector>
最后,需要在包含 button的xml文件里添加两项。例如main.xml 文件,需要在<Button
/>里加两项android:focusable="true" android:background="@drawable/button_color"
相关文章推荐
- Ubuntu下Eclipse无法添加Tomcat7解决方法
- iOS 程序间跳转传参(支付和地图)
- lucene学习六:lucene全文检索与数据库查询的比较
- [leetcode] Nim Gam
- Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
- Android中通过反射获取资源Id(特别用在自己定义一个工具将其打成.jar包时,特别注意资源的获取)
- jenkins相关命令
- java并发的处理方式
- 重温指针数组和数组指针
- js 弹出子页面与关闭子页面刷新父页面的问题
- android之TabWidget选项卡
- ARM Linux 3.x的设备树(Device Tree)
- json简介
- Caffe代码导读(0):路线图
- 二叉树遍历,先序序列+中序序列=后序序列,Poj(2255)
- beta 阶段的 postmortem 报告
- 使用Android studio Gradle 实现友盟多渠道打包
- Install _ zimg - A lightweight and high performance image storage and processing system.
- cordova local notification sound not working in ios and andorid
- opensips数据库