Android开发:利用selector设置ImageButton不同状态下的背景图片


在Android中,控件Button和ImageButton一般有三种状态:常态(normal)、点击状态(pressed)、聚焦状态(focused)。很多时候,我们为了提高用户的体验常常为Button以及ImageButton的不同状态设置不同的背景图片,下面介绍一种利用selector设置Button和ImageButton不同状态下的背景图片的方法。

具体步骤如下:

一、在res/drawable文件下创建selector.xml,示例代码如下:

  1. <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item  
  4.         android:state_pressed="false"  
  5.         android:drawable="@drawable/title_button_back">  
  6.     </item>  
  7.     <item  
  8.         android:state_pressed="true"  
  9.         android:drawable="@drawable/title_button_back_h">  
  10.     </item>  
  11.     <item  
  12.         android:state_window_focused="false"  
  13.         android:drawable="@drawable/title_button_back">  
  14.     </item>  
  15. </selector></span>  

二、编写布局文件,为布局文件中的ImageButton设置selector,示例代码如下:

  1. <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_height="wrap_content"  
  4.     android:layout_width="fill_parent">  
  5.     <ImageButton  
  6.         android:id="@+id/title_IB"  
  7.         android:layout_height="wrap_content"  
  8.         android:layout_width="wrap_content"  
  9.         android:background="#00000000"  
  10.         android:layout_marginRight="4dp"  
  11.         android:layout_centerVertical="true"  
  12.         android:src="@drawable/selector">  
  13.     </ImageButton>  
  14. </RelativeLayout></span>  

到此就为ImageButton的不同状态设置了不同的背景图片。

相关内容