2015-05-18 43 views
0

我需要使用狀態按鈕選擇器。我已經在網上閱讀了關於這個主題的一些artcicles,但它仍然不起作用。狀態按鈕選擇器android

按鈕的代碼(從佈局):

<Button 
    android:id="@+id/btn_shoot" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    android:layout_column="0" 
    android:layout_gravity="left|bottom" 
    android:layout_row="2" 
    android:background="@drawable/button_style"/> 

選擇代碼(繪製):

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

感謝對您的期貨答案。

回答

0

你可以試試這個教程。

http://www.mkyong.com/android/android-imagebutton-selector-example/

準備3個圖像的按鈕狀態,並把它變成「資源/繪製」文件夾中。

  • button_normal_green.png - 默認圖像按鈕。
  • button_focused_orange.png - 當按鈕被聚焦時顯示,例如 示例,當手機的鍵盤在此按鈕上移動(聚焦)時。
  • button_pressed_yellow.png - 按下按鈕時顯示。

現在,在「res/drawable /」文件夾中以任何名稱創建一個新的XML文件,在這種情況下,我們只需將名稱命名爲「new_button.xml」。這個文件定義了哪個按鈕狀態屬於哪個圖像。

現在,您可以通過此Id參考此按鈕:@ drawable/new_button。

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

打開「RES /佈局/ main.xml中」文件中,添加一個普通按鈕,並且背景圖像附加到上述的「new_button」經由「機器人:背景=「@繪製/ new_button」

您也可以使用一些形狀到位images.Create三種不同形狀的三個不同的按鈕狀態。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
<corners 
    android:radius="14dp"/> 
<gradient 
    android:angle="45" 
    android:centerX="35%" 
    android:centerColor="#7995A8" 
    android:startColor="#E8E8E8" 
    android:endColor="#000000" 
    android:type="linear"/> 
<padding 
    android:left="0dp" 
    android:top="0dp" 
    android:right="0dp" 
    android:bottom="0dp"/> 
<size 
    android:width="270dp" 
    android:height="60dp"/> 
<stroke 
    android:width="3dp" 
    android:color="#878787"/> 
</shape> 

我希望這有助於

+0

我跟着這個教程,但它仍然無法正常工作。 – Osaky11

+0

我可以知道你有什麼試過,所以我可以幫你。 – Victor

+0

我使用我在問題中編寫的解決方案,您的解決方案以及在互聯網上找到的其他許多解決方案。但是選擇器中的按下狀態總是被忽略。我試圖用程序化的方式來做到這一點,它工作正常。但是,當您按下按鈕並將手指滑出按鈕(仍然按下屏幕)時,手機會按住它。 – Osaky11