2013-06-24 170 views

回答

0

您可以使用ToggleButton而不是普通的,它在按下後會保存它的狀態。

只需使用selector爲其指定壓制和未壓縮紋理,並在按下之後將其保存爲壓制紋理。如果您不想將使用切換按鈕

+0

這個。或者考慮使用Switch(用於更新的API) – dberm22

1

可能的解決辦法,是在onClickListener

設定布爾值
private boolean isPressed = false; 


    mYourButton.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(){ 

       if(isPressed==false){ 

        mYourButton.setBackgroundResource(R.drawable.your_pressed_image); 
        isPressed=true; 

       }else if(isPressed==true){ 

         mYourButton.setBackgroundResource(R.drawable.your_default_image); 
         isPressed=false; 

        } 
       } 
      }); 
1

有someways通過繪製和佈局文件,這樣做,我建議。

例如,你有,你有一個「SEND」或「完成按鈕」視圖,所以在文件夾佈局的看法是這樣的:

<ImageButton 
android:id="@+id/btnIdNext" 
android:contentDescription="@string/someDescriptionOfImage" 
android:layout_width="wrap_content" 
android:layout_marginTop="10dp" 
android:layout_height="wrap_content" 
android:src="@drawable/buttons_src" 
android:background="@drawable/buttons" 
android:onClick="someaction" /> 

,你可以看到你有兩個重要的drawables,src和背景。所以,讓我們創建一個文件

在文件夾繪製我們創建buttons_src.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/finalizar_active" android:state_pressed="true"/> 
    <item android:drawable="@drawable/finalizar"/> 
</selector> 

在文件夾繪製我們創建buttons.xml文件太

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/bg_purple_active" android:state_pressed="true"/> 
    <item android:drawable="@drawable/bg_purple"/> 
</selector> 

我們得到的是四個圖像,兩個用於未壓縮狀態,兩個用於按下狀態。

的預覽下一個:

*未按下按鈕 http://i.stack.imgur.com/UZMtt.png

*按下的按鈕 http://i.stack.imgur.com/1E0u4.png