1. Button属性设置
系统提供的Button都是一成不变的样子
方方正正,浅灰色的背景,好low。
-
Seletor
可以为Button提供了在各种状态下显示不同图片或者颜色的选项。想为Button增加点击效果的好选择。- 在res/drawable下创建一个Drawable Resource File,这是一个XML文件
- 根元素
<seletor xmlns:android="http://schemas.android.com/apk/res/android">
</seletor> - 子元素
<item></item>
- 子元素的属性
-
android:drawable
这个属性用来控制该item
显示的drawable资源 -
android:state_xxxxx
这个属性用来控制item
将在什么情况下显示drawable资源
其中的xxxxx是泛指许多情况,常用的情况有- android:state_focused
- android:state_selected
- android:state_pressed
- 不指定
android:state_xxxxx
属性的item
则是默认项,找不到指定情况下使用的item
就是用默认项,注意了,默认项item
要写在其他所有item
的后面,这个坑已经坑过我很多次了
-
- 例子 btn_back.xml
<?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/back_press" />
<item android:drawable="@drawable/back" />
</selector>
在Button中将该btn_back.xml设置为
默认展示background
属性即可
点击时也就是状态为state_pressed
可以明显地看到Button的点击效果,虽说这个效果也是可以直接通过java代码实现,可写在XML文件当然方便多了。 -
shape
可以为Button提供了修改形状的选项- 在res/drawable下创建一个Drawable Resource File,这是一个XML文件
- 根元素
<shape xmlns:android="http://schemas.android.com/apk/res/android">
</shape> - 子元素
-
<solid/>-填充颜色
- ```android:color`` 设置填充的颜色
-
<corners/>-圆角 下列属性来设置圆角的参数
-
android:radius
四个角的弧度半径 -
android:bottomLeftRadius
左下角的弧度半径 -
android:bottomRightRadius
右下角的弧度半径 -
android:topLeftRadius
左上角的弧度半径 -
android:topRightRadius
右上角的弧度半径
-
- <gradient/>-渐变 不常用不详述属性
-
<padding/>-内容离边界距离
-
android:top
距离上边界的距离 -
android:bottom
距离下边界的距离 -
android:left
距离左边界的距离 -
android:right
距离右边界的距离
-
- <size/>-大小 可在这里设置控件宽度
-
<stroke/>-描边
-
android:color
设置描边的颜色 -
android:width
设置描边的宽度 -
android:dashGap
设置小段实线之间的距离 -
android:dashWidth
设置一小段实线的宽度
-
4.例子 btn_shape.xml
填充的效果
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00ee00"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<stroke android:width="2dp"
android:color="#dcdcdc" />
<corners android:bottomLeftRadius="36dp"
android:topRightRadius="8dp"/>
<padding android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
综合效果
在Button中将该btn_shape.xml设置为background属性即可
网友评论