在安卓的学习中经常用到Button控件,在改变按钮的背景色之后发现无论怎么点击按钮,颜色样式都不发生变化了,这里分享一个方法:就是自定义两张按钮的背景图片,当按钮在不同状态时切换为不同的图片就有点击的效果了。当然在background属相里面是不能直接设置的,因为只能设置一张图片。这里需要添加一个xml的配置文件(这个文件放在drawable文件夹下就行),在里面为按钮的不同状态设置不同的背景图片,由于有很多状态但是不用全部指定,只需几个就可以了,具体代码如下:
按钮状态配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/green_btn_on"
android:state_focused="true"/>
<item android:drawable="@drawable/green_btn_on"
android:state_selected="true"/>
<item android:drawable="@drawable/green_btn_on"
android:state_pressed="true"/>
<item android:drawable="@drawable/green_btn_out"/>
</selector>
Button属性设置:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/green_bt"
android:text="登陆"
android:textColor="#fff" />
background里设置的就是配置文件。
效果如下:
正常时:
点击时:
图片文件:
还有一点需要注意的是我所使用的两张图片文件名为green_btn_on.9.png,green_btn_out.9.png。这种.9格式图片是安卓设定的一种为适应不同屏幕而设计的圆角格式图片,因为如果这张图片放在大屏手机上,尺寸会被拉伸,那么圆角的两边就会扩大,而我们的想法是保持圆角大小保持不变的,所以就需要用这张格式的图片了,安卓里面有专门的工具来制作这种图片(如果不用圆角图片就没必要了)。这里为大家附上一个.9格式图片制作工具.