一、配置stateListAnimator参数实现按压效果
1、按钮控件
<Button
android:id="@+id/mBtnLogin"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/shape_jfrb_login_button"
android:stateListAnimator="@animator/button_press_effect"
android:text="@string/login"
android:textColor="#ffffff"
android:textSize="@dimen/sp_18" />
2、设置按压效果,配置stateListAnimator
(1)button_press_effect.xml
文件位置:
文件内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<set>
<!-- 按压时的缩放比例,可调整 -->
<objectAnimator android:propertyName="scaleX" android:valueTo="0.95" android:valueType="floatType" android:duration="100" />
<objectAnimator android:propertyName="scaleY" android:valueTo="0.95" android:valueType="floatType" android:duration="100" />
<!-- 按压时的透明度变化,可调整 -->
<objectAnimator android:propertyName="alpha" android:valueTo="0.6" android:valueType="floatType" android:duration="100" />
</set>
</item>
<item android:state_enabled="true" android:state_pressed="false">
<set>
<!-- 松开后恢复原始状态 -->
<objectAnimator android:propertyName="scaleX" android:valueTo="1.0" android:valueType="floatType" android:duration="100" />
<objectAnimator android:propertyName="scaleY" android:valueTo="1.0" android:valueType="floatType" android:duration="100" />
<objectAnimator android:propertyName="alpha" android:valueTo="1.0" android:valueType="floatType" android:duration="100" />
</set>
</item>
</selector>
3、完成
运行后点击按钮即可看到效果,可根据需要调整button_press_effect中的数值参数