2011-03-02 48 views
2

我有一個很好的背景選擇器的按鈕。精細。而不是按鈕中的文字,我想要一張圖片。我已經嘗試將其更改爲具有src屬性的ImageButton。當我這樣做的時候,它看起來像一個灰色背景疊加在我的選擇器後面,在src圖像後面。android ImageButton獲取灰色背景

當我改回常規按鈕時,問題就消失了。我想要的只是我的背景選擇器,加上src圖像(而不是按鈕文字)。

有什麼想法?

回答

7

ImageButton應該有android:background set。

<ImageButton 
    android:id="@+id/ibArrow" 
    android:layout_width="35px" 
    android:layout_height="50px" 
    android:src="@drawable/arrow" 
    android:background="@drawable/backgroundstate" /> 

而且backgroundstate:

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

我有與圖像按鈕相同的問題..這工作得很好:) – Ajay 2011-08-21 16:47:00

+0

和是關閉選擇器節點。 – 2014-02-18 18:21:32

0

我會說你可能沒有正確引用圖像在R.drawable也許你需要放置圖像繪製? ImageView可以工作。

0

你可以發佈你所看到的截圖嗎?很難確切地說出你在說什麼,但是聽起來像你的src圖像可能沒有適當的alpha通道。這是一個具有透明度的PNG嗎?確保你的src圖像是一個正確保存的透明PNG圖像。

+0

這是我試過的圖像之一的例如:http:// cdn1.iconfinder.com/data/icons/humano2/128x128/actions/gtk-media-forward-ltr.png。爲了解決這個問題,我使用了一個常規按鈕,刪除了文本,通過android:drawableTop引用圖像,然後通過手動設置高度來壓扁按鈕。該方法正確顯示圖像和背景。基於此,我的假設是圖像是正確的。 – 2011-03-03 01:55:52

+0

你能截取這個問題的畫面嗎?你的透明度似乎很好。 – kcoppock 2011-03-03 04:57:39

2

@kdumitru說什麼,但正確的XML樣式表:

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