本文已参与「新人创作礼」活动,一起开启掘金创作之路。
实现的目标:按钮触发前后呈现不同的颜色
1.首先在主页面里面绘制: activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"
android:background="@drawable/button_background2"
>
</Button>
</LinearLayout>
2.绘制按钮触发前后的背景颜色:button_background2.xml: 其中1)item android:state_pressed="true"代表鼠标点击前; 2)item android:state_pressed="false"代码鼠标点击后;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--动态改变-->
<item android:state_pressed="true">
<shape>
<corners android:radius="3dp"></corners>
<solid android:color="#0A6778"></solid>
</gradient>-->
<size android:height="40dp" android:width="80dp"></size>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<corners android:radius="10dp"></corners>
<solid android:color="#4CFF55"></solid>
</gradient>-->
<size android:height="40dp" android:width="80dp"></size>
</shape>
</item>
</selector>
基本绘制已经完成,但是按钮的颜色还是最初的颜色,并不会发生变化,需要修改一下工程里面的文件:
也就是:
效果图: 触发前:
触发后:
总结:重点核心代码就是在背景颜色绘制时用到触发点击改变的属性即可啦!