Selector:

在开发过程中,通常我们需要给控件增加点击的效果,效果如下:

默认效果                  点击效果

f6e1ba9cb616c18360bbbf644a643268.png   c7bb7d009b1d2056a02c1a20fb493be1.png

1、首先准备两张图片(默认和点击时的图片)

2、右击res文件夹,新建一个xml文件,在弹出的对话框中,Resource Type 选择Drawable,Root Element选择Selector,填入文件名(如:pressed_selector),点击完成,这时会在res文件夹中生成一个drawable文件夹存放我们创建的xml文件

3、xml代码如下:<?xml  version="1.0" encoding="utf-8"?>

android:state_pressed="true"  //点击状态

android:drawable="@drawable/ic_pressed">

 //点击状态的图片

 //没有设置状态则为默认图片

4、之后再布局文件中,在我们要增加点击效果的控件设置如下属性,运行后该控件就有点击效果了android:background="@drawable/pressed_selector"

5、当然,出了设置点击时的效果,还可以设置选中状态、聚焦状态等等效果

只要设置相应 android:state_xxx 属性即可

Shape:

除了给控件设置点击效果,我们还可以在控件的外观上给予美化,比如设置圆角、边框等,这时候就要用到shape了,跟selector一样创建一个xml文件,Root Element选择Shape,就会生成shape xml文件,各种属性参考下面代码<?xml  version="1.0" encoding="utf-8"?>

android:radius="2dp"

android:topLeftRadius="2dp"

android:topRightRadius="2dp"

android:bottomLeftRadius="2dp"

android:bottomRightRadius="2dp" />

android:width="2dp"

android:color="#dcdcdc"

android:dashWidth="2dp"

android:dashGap="3dp"/>

android:angle="200"

android:endColor="#00ff00"

android:startColor="#ffffff" />

android:bottom="10dp"

android:left="10dp"

android:right="10dp"

android:top="10dp" />

同样是给控件设置background属性即可引入shape效果android:background="@drawable/shape"

Selector与Shape结合使用:

如果我们要给控件同时设置点击效果和shape效果,只需要把shape的代码移植到selector中即可,代码如下:<?xml  version="1.0" encoding="utf-8"?>

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐