selector,shape的自定义使用
2016-09-27 12:25
141 查看
1.selector的使用详解
1.创建selector的xml资源文件
右击drawable目录--》点击new--》Drawable resource file这样selector资源文件创建完毕,然后来编写它的功能
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@color/red"> </item> <item android:state_pressed="true" android:drawable="@color/blue"> </item> <item android:drawable="@color/green"> </item> </selector>事件是从上往下解析的,所以要注意item的编写顺序,以免发生写了没有效果呈现,一般最后一个item是默认项。
2.属性介绍
android:state_selected 选中android:state_focused 获得焦点
android:state_pressed 点击
android:state_enabled 是否响应事件,指所有事件
3.重点注意
在selector的item中,如果要定义颜色属性,千万不可采用<item android:color="#ff0000"/>的方式,这样应用会自动闪退,正确写法为:<item android:drawable="@color/red"/> ,其中里面android:drawable属性中肯定可以放图片的。2.shape的使用详解
1.创建shape的xml资源文件
跟selector的创建方法一样,唯一的区别就是把selector改成shape<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 圆角 --> <corners android:radius="9dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp"/><!-- 设置圆角半径 --> <!-- 渐变 --> <gradient android:startColor="@color/colorAccent" android:centerColor="@color/green" android:endColor="@color/blue" android:useLevel="true" android:angle="45" android:type="radial" android:centerX="0" android:centerY="0" android:gradientRadius="90"/> <!-- 间隔 --> <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp"/><!-- 各方向的间隔 --> <!-- 大小 --> <size android:width="50dp" android:height="15dp"/><!-- 宽度和高度 --> <!-- 填充 --> <solid android:color="@color/green"/><!-- 填充的颜色 --> <!-- 描边 --> <stroke android:width="2dp" android:color="@android:color/black" android:dashWidth="1dp" android:dashGap="2dp"/> </shape>
2.属性介绍
填充:设置填充的颜色间隔:设置四个方向上的间隔
大小:设置大小
圆角:同时设置五个属性,则Radius属性无效
android:Radius="20dp" 设置四个角的半径
android:topLeftRadius="20dp" 设置左上角的半径
android:topRightRadius="20dp" 设置右上角的半径
android:bottomLeftRadius="20dp" 设置右下角的半径
android:bottomRightRadius="20dp" 设置左下角的半径
描边:dashWidth和dashGap属性,只要其中一个设置为0dp,则边框为实现边框
android:width="20dp" 设置边边的宽度
android:color="@android:color/black" 设置边边的颜色
android:dashWidth="2dp" 设置虚线的宽度
android:dashGap="20dp" 设置虚线的间隔宽度
渐变:当设置填充颜色后,无渐变效果。angle的值必须是45的倍数(包括0),仅在type="linear"有效,不然会报错。另外android:useLevel的值为true的话,有渐变效果,反之没有。
3.两者的综合应用
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> <!-- 渐变 --> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF" android:type="radial" android:gradientRadius="50"/> <!-- 描边 --> <stroke android:width="2dp" android:color="#dcdcdc" android:dashWidth="5dp" android:dashGap="3dp"/> <!-- 圆角 --> <corners android:radius="2dp"/> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp"/> </shape> </item> <item android:state_focused="true"> <shape> <gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7" android:angle="270"/> <stroke android:width="2dp" android:color="#dcdcdc"/> <corners android:radius="2dp"/> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp"/> </shape> </item> <item> <shape> <solid android:color="#ff9d77"/> <stroke android:width="2dp" android:color="#fad3cf"/> <corners android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="0dp" android:bottomRightRadius="0dp"/> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp"/> </shape> </item> </selector>效果图:
好了,今天就讲这么多了,谢谢各位的捧场,demo这次就不上传了。
相关文章推荐
- (4.3.1.3)【项目一】主体框架Fragment中Selector的使用与自定义button-shape
- android自定义dialog,添加了selector和shape混合使用
- AN button自定义样式 && AN selector和shape的使用
- Android自定义矩形及selector、shape的使用
- Android Selector和Shape的使用方法
- shape和selector的结合使用
- 自定义背景文件,android:shape的使用!
- Android中 shape和selector的使用
- android - UI设计之shape和selector的结合使用
- Android开发教程:shape和selector的结合使用
- Android开发教程:shape和selector的结合使用
- Android-----使用Button特效 selector shape
- Android开发教程:shape和selector的结合使用
- android中shape与selector的使用
- shape和selector的结合使用
- 【Android进阶学习】shape和selector的结合使用
- [转]Android开发教程:shape和selector的结合使用
- 【Android进阶学习】shape和selector的结合使用
- Android自定义shape的使用