2014-01-18 58 views
2

我有以下3個圖像按鈕。代碼的方式如下,三個按鈕看起來一樣。 問題:ImageButton在Android的XML(圖像太小,可怕的決議)

  1. 圖像沒有填滿按鈕的大小完全
  2. 圖像的分辨率是壞的。我將圖像保存在所有res/drawable文件夾(drawable-hdpi,mdpi等)中。圖像由「Android圖標集」嚮導加載。

任何想法?我一直在玩填充和scaleType,因爲我將它們看作是其他帖子上的解決方案。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_marginTop="10dp" 
    android:orientation="vertical"> 

<ImageButton 
    android:id="@+id/abutton" 
    android:src="@drawable/a_button_icon" 
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:padding="5dp" 
    android:scaleType="fitXY"/> 

<ImageButton 
    android:id="@+id/button"   
    android:src="@drawable/b_button_icon" 
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:scaleType="fitXY"/> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:layout_marginTop="10dp"> 

<ImageButton 
    android:id="@+id/cbutton"   
    android:src="@drawable/d_icon" 
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:padding="20dp" 
    android:scaleType="fitXY"/> 

<ImageButton 
    android:id="@+id/dbutton"   
    android:src="@drawable/about_a_button" 
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:padding="20dp" 
    android:scaleType="fitXY"/> 

    </LinearLayout> 
</LinearLayout> 
+1

嘗試9個補丁圖像。 – CoolMonster

+1

這可能有助於解決方案?怎麼樣圖標沒有佔用整個按鈕的大小? – emily

+0

但是,您使用的圖像大小是多少?因爲我總是使用我想要的精確尺寸,並且從不需要縮放:fitXY。 – Aiapaec

回答

4

相反的android:src分配繪製的屬性把它分配給ImageButtonandroid:background屬性。

OR

你可以嘗試設置android:adjustViewBounds="true",這將使ImageButton調整它的界限,以保持其繪製

PS的寬高比:如果您設置的圖像是你的ImageButton的背景下,那麼圖像將縮放爲ImageButton的大小。除此之外,src是前景圖像,背景是背景圖像。

編輯:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <!-- The two linear layouts will have equal widths. --> 
    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:padding="5dp" > 

     <!-- The two image button will fill the linear layout along width and have height 150dp --> 
     <ImageButton 
      android:id="@+id/abutton" 
      android:layout_width="fill_parent" 
      android:layout_height="150dp" 
      android:background="@null" 
      android:scaleType="fitXY" 
      android:src="@drawable/engage_down" /> 

     <ImageButton 
      android:id="@+id/button" 
      android:layout_width="fill_parent" 
      android:layout_height="150dp" 
      android:layout_marginTop="10dp" 
      android:background="@null" 
      android:scaleType="fitXY" 
      android:src="@drawable/engage_down" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:padding="5dp" > 

     <ImageButton 
      android:id="@+id/cbutton" 
      android:layout_width="fill_parent" 
      android:layout_height="150dp" 
      android:background="@null" 
      android:scaleType="fitXY" 
      android:src="@drawable/engage_down" /> 

     <ImageButton 
      android:id="@+id/dbutton" 
      android:layout_width="fill_parent" 
      android:layout_height="150dp" 
      android:layout_marginTop="10dp" 
      android:background="@null" 
      android:scaleType="fitXY" 
      android:src="@drawable/engage_down" /> 
    </LinearLayout> 

</LinearLayout> 

希望這有助於。

+0

更改爲android:background僅刪除圖像按鈕的背景(而不是灰色,它與背景相匹配)。實際的形象仍然是一面。 android:adjustViewBounds =「true」不會爲我改變任何東西。任何其他想法? – emily

+0

編輯,看看是否適合你。 – jagmohan

1

嘗試 刪除填充並將背景設置爲'null'。 在解決方案的情況下,我認爲它是採取低分辨率圖像。

<ImageButton 
    android:id="@+id/dbutton"   
    android:src="@drawable/about_a_button" 
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:background="@null" 
    android:scaleType="fitXY"/> 
+0

這沒有改變任何東西。 – emily

1

我面臨同樣的問題。沒有爲我工作。最後這是一個簡單的問題。默認情況下,圖像周圍是填充。所以使用:

機器人:填充= 「0dp」

它會解決這個問題。