2012-09-06 66 views
1

我想做一個imageButton,將改變狀態。所以,我提出所謂的 「btn_marisa」 的XML文件:來源沒有顯示在圖像按鈕

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

<item android:drawable="@drawable/btn_marisa_bg_on" android:state_pressed="true"/> 
<item android:drawable="@drawable/btn_marisa_bg"/> <!-- default --> 

</selector> 

比i相的ImageButton製成的佈局,這就是代碼:

<ImageButton 
    android:id="@+id/imageButton3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/imageButton2" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@+id/imageButton2" 
    android:adjustViewBounds="true" 
    android:src="@drawable/marisa_logo" 
    android:background="@drawable/btn_marisa" 
    android:scaleType="fitStart" /> 

由於某種原因,在蝕(在圖形佈局)它看起來不錯,但是當我在手機上安裝它時只顯示背景。它甚至改變狀態,但我沒有看到我需要在背景上看到的圖像。它有一個圖標和背景的按鈕,我只想要背景改變狀態。 我錯過了什麼?謝謝!

+0

你有沒有辦法解決? – Khan

回答

1

它應該工作。

但首先,請確保源圖像@drawable/marisa_logo小於背景圖像btn_marisa_bg_on/btn_marisa_bg,否則圖像將與整個背景重疊,並且您將無法看到背景狀態何時會改變。

此外,請嘗試刪除此屬性以及android:scaleType="fitStart",因爲這會拉伸源圖像,並且您將無法看到背景。

+0

謝謝,但我的問題是,我只看到背景。我根本沒有看到源圖像。 – roiberg

+0

這很奇怪。我嘗試了你的例子,只是與我的圖片,它工作得很好 - 我能夠看到源圖像,加上背景。嘗試做一個乾淨的,然後:項目 - >乾淨,併爲了測試除去adjustViewBounds,看看是否有任何影響。 –

+0

測試...將更新。 – roiberg

0

嘗試按鈕而不是ImageButton。 刪除android:src並保留android:background。 在大多數情況下,這應該足夠了。 嘗試一下,看看它是否顯示你想要的。

如果您確實應該首先想要ImageButton中的背景和源代碼,請查看我的建議是否有效,然後逐個添加您的修改。

+0

也許我不清楚在我的問題。我只看到背景。如果我將使用按鈕我仍然會看到只有背景,因爲按鈕只有背景而不是ImageSource。這是如何幫助獲得背景和圖標?謝謝。 – roiberg

+0

marisa_logo是圖像,drawable是背景嗎? – Radu

+0

是的......這就是對的。 – roiberg