2013-06-19 48 views
0

我想更改例如btn_star_big_off to btn_star_big_on單擊時更改圖像按鈕系統資源

每次有人點擊按鈕時,該狀態都會改變。 Toogle將是完美的,但我不知道如何結合。而且我不知道如何改變按鈕的狀態。我發現我可以用可繪製的XML文件做到這一點,但我只能訪問我導入的圖像,但不能訪問系統資源的圖像?

的按鈕:

<ImageButton 
       android:id="@+id/imageButton4" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:src="@android:drawable/btn_star_big_off" /> 

這裏是從我的繪製XML審判:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/button" android:state_pressed="true"/> 
<!-- pressed --> 
    <item android:drawable="@drawable/button"/> 
<!-- default --> 

</selector> 
+0

嘗試改變的圖像編程onclick事件創建XML佈局你的視圖。 – AndiM

回答

3

您需要使用切換按鈕

1)在你的佈局,實現切換按鈕

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:weightSum="1"> 

    <ToggleButton 
    android:layout_width=0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight=".3" 
    android:background="@drawable/my_button" 
    android:text="" 
    android:textOff="" 
    android:textOn=""/> 

</TableRow> 

2)繪製的目錄(這裏my_button.xml)

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:drawable/btn_star_big_on" android:state_pressed="true"/><!-- pressed --> 
    <item android:drawable="@android:drawable/btn_star_big_on" android:state_focused="true"/><!-- focused --> 
    <item android:drawable="@android:drawable/btn_star_big_on" android:state_checked="true"/> 
    <item android:drawable="@android:drawable/btn_star_big_off" android:state_checked="false"/> 
    <item android:drawable="@android:drawable/btn_star_big_off"/> <!-- default --> 
</selector> 

在這裏,我可以再添加一個狀態,如果你想有一個集中的IMG

+0

謝謝!這幫助了很多,但仍然存在問題。當我這樣做時,出現錯誤: 錯誤:錯誤:找不到與給定名稱匹配的資源(在'drawable'中,值爲'@ drawable/btn_star_big_off')。 因爲我沒有保存在我的電腦上的圖像,他們來自android(從系統資源)。我如何響應系統資源映像? –

+1

沒問題!我的代碼已被編輯。如果它確定你點擊:) – baroni

+0

非常感謝!現在看起來很簡單! –