2013-01-08 256 views
0

我想創建ImageButton並將圖像設置爲保持原始大小的背景。所以我用代碼中找到的StackOverflow上這幾行太:爲ImageButton背景調整圖像大小

ImageButton retry = new ImageButton(this); 

Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.button2); 
retry.setImageBitmap(image); 
retry.setMinimumWidth(image.getWidth()); 
retry.setMinimumHeight(image.getHeight()); 

但不幸的是我得到以下結果:

ImageButton

很顯然,我不希望「背景按鈕」,但只圖片。我能怎麼做?

+0

你有沒有試過retry.setBackgroundResource(image); – Zohaib

+0

@Zohaib是的!它是調整大小... –

回答

5

這取決於你的形象,但。您可以通過將風格寫入按鈕來實現此目的。首先,你應該在你的drawables文件夾中定義你的按鈕的形狀(如果它不存在,不要猶豫創建並定義button_shape.xml)。

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- **pressed button pressed is name of image...** --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 

在樣式文件中定義樣式之後。

<style name="button_style"> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:background">@drawable/button_states</item> 
</style> 

並設置Button的樣式屬性。

+0

即使我使用ImageView而不是ImageButton並使用此方法設置背景,我可以使用我的形狀嗎? 'Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.button2); retry.setImageBitmap(image); retry.setMinimumWidth(image.getWidth()); retry.setMinimumHeight(image.getHeight());' –

1

將按鈕的背景設置爲透明顏色或爲空。

+1

是這是另一種選擇和最基本的方式:) – ibrahimyilmaz

+0

你的方式它太複雜了) – Leonidos

+0

是的,但我總是認爲沒有痛苦沒有收益:) – ibrahimyilmaz