Android开发中使用一张图片实现变暗或缩小的点击效果

一般我们在开发中做按钮点击效果都是用两张图片或者两种颜色写selector的xml文件.但是有时候我们可能面临只有一张图片也需要实现类似的点击效果,这个时候怎么办呢?
其实也很好办,同样用selector来实现.
先实现第一种效果点击图片变暗的效果,思路很简单就是在图片上面覆盖一层半透明白色,selector如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--?xml version="1.0" encoding="utf-8"?-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/test" />
<item>
<shape android:shape="oval" >
<solid android:color="#51000000" />
</shape>
</item>
</layer-list>

</item>

<item android:drawable="@drawable/test" />
</selector>

在pressed为true的状态下使用了layer-list里面包含了一张图片和一个shape实现的半透明覆盖层,这样点击的时候效果就是图片变暗从而实现点击效果
pressed
是不是很简单.

还有一种效果是点击图片缩小放开又弹回来的效果,其实也很简单,看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
<layer-list>
<item android:drawable="@drawable/test"
android:top="3dp"
android:bottom="3dp"
android:left="3dp"
android:right="3dp"/>
</layer-list>

</item>

<item android:drawable="@drawable/test" />
</selector>

效果如下:
pressed2
这样使用一张图片也能实现很好的点击效果.

坚持原创技术分享,您的支持将鼓励我继续创作!