本人小白,所发内容仅供思考。
Button按下改变背景颜色的方法如下:
1、在activit_main.XML文件有如下的button:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
android:textSize="11px"
android:text="带图片的文字按钮"
/>
上面的红色字体是重点,这里是用一张名称为“button_selector”的图片资源作为这个Button的背景的,奥妙就在这里:button_selector是通过xml文件描述出来的一个图片文件,在描述的语句里面做了按下的值为正还是假的判断,这样就可以实现按钮的背景在按下和放开的时候发生改变了。实现方法是,在drawable文件夹下新建button_selector.xml文件,如下:
button_selector.xml文件里的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 指定按钮按下是的图片 -->
<item android:state_pressed="true"
android:drawable="@drawable/red"
></item>
<!-- 指定按钮松开时的图片 -->
<item android:state_pressed="false"
android:drawable="@drawable/purple"
/>
</selector>
使用<selector.../>元素定义了一个stateListDrawable对象。这个元素我现在还不太了解,还没看到。
这样就实现了Button的背景在按下和放开是发生改变了。
就是通过使用<selector.../>元素来通过判断tem android:state_pressed="false"的正伪来显示不同的图片或颜色来实现改变的,