Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android_UI_點擊按鈕切換背景效果實現

Android_UI_點擊按鈕切換背景效果實現

編輯:關於Android編程

實現按鈕按下和釋放,按鈕背景圖片相應切換效果的方法這裡介紹兩種,一種是在代碼裡實現,另一種是在xml文件裡實現

一、在xml文件裡

首先現在layout的一個xml文件下定義Button如下所示:

 

[html]
<Button  
    android:id="@+id/btn_user_selected" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/btn_selected/> 
注意代碼裡的android:background="@drawable/btn_selected",這裡btn_selected是drawable文件下定義button按下釋放效果的xml文件
接下來看btn_selected.xml文件的定義:


[html]
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- 獲得焦點但未按下時的背景圖片 --> 
    <item android:state_focused="true" android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/user_selecte_n" /> 
     <!-- 按下時的背景圖片 --> 
    <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/user_selecte_p" /> 
    <!-- 按下時的背景圖片 --> 
    <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/user_selecte_p" /> 
    <!-- 默認時的背景圖片 --> 
    <item android:drawable="@drawable/user_selecte_n" /> 
</selector> 

 

創建xml:點擊drawable文件夾右鍵-->new-->Android XML File-->在File欄裡填寫xml名稱-->Root Element下選擇xml的背景選擇器selector-->點擊finish-->創建成功

相關屬性:

android:state_selected :選中
android:state_focused  :獲得焦點
android:state_pressed  :點擊
android:state_enabled  :設置是否響應事件,指所有事件

selector背景選擇器用法大全請跳轉到:點擊打開鏈接

 


二、在java代碼裡

[java]
 bottomReturnBtn.setOnTouchListener(new OnTouchListener() { 
     
    public boolean onTouch(View v, MotionEvent event) { 
        Button upStepBtn = (Button) v; 
        if(event.getAction() == MotionEvent.ACTION_DOWN){ 
            upStepBtn.setBackgroundResource(R.drawable.bottom_sub_order_btn); 
        }else if(event.getAction() == MotionEvent.ACTION_UP){ 
            upStepBtn.setBackgroundResource(R.drawable.bottom_return_check); 
            finish();  
        } 
        return false; 
    } 
});  

 

通過監聽按鈕的不同狀態來更改按鈕的背景圖片

public boolean onTouch(View v,MotionEvent event){

}

參數v:事件源對象

參數event:事件封裝類的對象,其中封裝了觸發事件的詳細信息,同樣包括事件的類型、觸發時間等信息。

 


event.getAction() == MotionEvent.ACTION_DOWN   ======>按鈕被按下

event.getAction() == MotionEvent.ACTION_UP                ======>按鈕被釋放

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved