安卓中如何通过事件来改变Button与ListView控件的背景图片

1.首先在drawable目录下创建一个XML文件,文件名任意,如下(test_check.xml):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/dust_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/dust_normal" android:state_pressed="false"/>

</selector>

文件是有一定格式的:1.根标签是selector;2.该xml文件的命名空间必须是“http://schemas.android.com/apk/res/android“。在selector中可以定义有多个item,每一个item表示控件的一个状态,以及在该状态下的属性。如:

<item android:drawable="@drawable/dust_pressed" android:state_checked="true"/>

上述语句就表示指定控件如果被点击,那么背景图片就是dust_selected,如果在一般情况下,那么背景图片就是dust_selected。下面来看一下,item有哪些属性,如下:

android:state_pressed 	"true"表示按下状态使用 			"false"表示非按下状态使用 
android:state_focused 	"true"表示聚焦状态使用			"false"表示非聚焦状态使用 
android:state_selected 	"true”表示选中状态使用			"false"表示非选中状态使用 
android:state_checkable	"true"表示可勾选状态时使用			"false"表示非可勾选状态使用
android:state_checked   "true"表示勾选状态使用			"false"表示非勾选状态使用 
android:state_enabled 	"true"表示可用状态使用			"false"表示不可用状态使用 
android:window_focused 	"true"表示应用程序窗口有焦点时使用		"false"表示无焦点时使用


除了上面的特征属性外,item还有其他属性,如下:
android:drawable="@drawable/dust_selected"	该属性表示与指定的图片资源关联,作为背景图片

2.将文件与指定的控件关联,如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
		android:id="@+id/button_3"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:text="Test"
		android:background="@drawable/test_check"/>
</LinearLayout>

通过设置属性 android:background即可将其与指定的xml文件关联起来,从而使得button拥有该文件中所定义的特征。

3.运行程序,在上述的程序中,当我们点击按钮Test时,背景图片为dust_pressed,而当我们松开按钮或处于一般状态下,其背景图片为dust_normal。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值