2012-10-19 51 views
1

我正在將圖像動態加載到屏幕上的圖像按鈕上。圖像將不會提前知道,並且是差異大小。Android ImageButton由於它的背景圖像而變得太大了

有誰知道如何確保imagebutton的大小保持不變,無論圖像分配給它。最好拉伸圖像以適應按鈕。我嘗試過使用android:scaleType =「fitXY」並將ewidth和height設置爲硬值(不是首選)。不管我做了什麼,圖像決定了按鈕的大小,反之亦然!幫幫我!我嘗試了以下的組合。圖像來自互聯網的搜索隨機。

    <ImageButton 
         android:id="@+id/ImageButton1" 
         android:layout_height="93px" 
         android:src="@drawable/image1" 
         android:layout_width="93px" 
         android:background="93px" /> 
        <ImageButton 
         android:id="@+id/ImageButton4" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:src="@drawable/image1" 
         android:scaleType="fitXY" /> 

非常感謝任何幫助!

回答

5

不是設置每個ImageButton的大小,而是將按鈕放在容器佈局中並設置容器的大小。例如:

<LinearLayout 
     android:id="@+id/container" 
     android:layout_width="80dp" 
     android:layout_height="80dp" > 

     <ImageButton 
      android:id="@+id/ImageButton1" 
      android:src="@drawable/image1" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:scaleType="fitXY" /> 
</LinearLayout> 

這應該強迫你的圖像按鈕,沒有比它駐留在

+0

這將有助於確保ImageButton的尺寸保持糾正設備的屏幕尺寸/密度。感謝我給它一個去。 – user1417337

+0

我試過這種方法和高度的一部分,但寬度並沒有改變 - 我用你的例子相同的佈局。有任何想法嗎? – user1417337

+0

它不工作(嘗試使用200x200px圖像) – erdomester

1

位圖您有尺寸不同的容器的尺寸更大。所有這些都可以轉化爲newHeight和newWidth可能是適合你現在application.So規模仍將低於constant.Use代碼,使其適合寬度和高度的

Bitmap yourBitmap; 
Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); 
+0

謝謝你給我一個去。我希望我的圖像按鈕尺寸根據設備的尺寸進行更改顯示密度/尺寸 - 我是否需要通過根據屏幕尺寸設置我的圖像按鈕尺寸來完成此操作? – user1417337

+0

yes根據你可以通過getHeight()和getWidth()方法得到的設備的大小,你可以根據你的需要決定你的圖像的大小 –

+0

這似乎將按鈕內的圖像設置爲一個好的大小,但灰色的按鈕仍然是相同的大小。有什麼方法我應該使用按鈕本身? – user1417337