在Android应用中,绝大部分情况下,按钮都有按下变色的效果,这种效果主要都是借助于Android里面的 StateListDrawable来实现的,它可以设置多种状态,并分别为每种状态设置相应的drawable,这个drawable有两种方式来实现:1、准备多张图片 2、准备多个 ShapeDrawable。下面用第二种方式来实现一下按钮变色的效果。
一、准备两个ShapeDrawable
1、btn_shape.xml,正常状态下的背景图
2、btn_shape_press.xml ,按下状态下的背景图
其中,corners:圆角度数, solid:填充色
二、准备StateListDrawable
btn_shape_press.xml
三、将StateListDrawable设置为Button的背景
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_margin="20dp"
android:background="@drawable/btn_selector"
android:text="请按我,给你点颜色看看"
android:textColor="@color/white">
测试效果
按钮点击变色.gif