2013-08-26 22 views
8

我有一個左側draped分配給一個按鈕以及一個背景drawable。我想提供一個選擇器,以便當用戶按下/關閉/禁用按鈕時,其外觀會改變。我用於左側繪圖的圖像是一個紅色的「x」。是否可以在選擇器xml中更改按鈕的左側drawable?

我希望在按下或禁用按鈕時用灰色「X」替換。這可能使用選擇器?

這裏是我試了一下(這適用於邊框/背景圖片,而不是左側繪製(明顯)。

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove"/> 
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_focused="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/BlackBorder" 
     android:drawableLeft="@drawable/Remove"/> 
</selector> 
+0

@ theMothaShip創建一個單獨的選擇器,並將其設置爲可抽出的。 – Varun

+0

@Varun我覺得很愚蠢,我並不認爲這樣做首先...謝謝! – theMothaShip

+0

@Varun像魅力一樣工作,提交它作爲答案,我會將其標記爲已接受。 – theMothaShip

回答

14

創建一個單獨的選擇和嘗試設置,作爲drawableLeftButton

+0

你能解釋一下嗎?不知道我明白。 – user2966445

+0

在這個問題中,OP有一個'selector'作爲背景,另一個圖標作爲'Button'上的'leftDrawable',它不反映選擇狀態。解決方案是不使用簡單的圖標作爲'leftDrawable',而是創建一個'selector' drawable(StateListDrawable)並將其用作'leftDrawable'。如果您想更多地瞭解有關'StateListDrawable'的信息,請點擊官方文檔鏈接 - https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – Varun

相關問題