2011-11-17 198 views
9

Android:如何設置ImageButton圖像的高度/寬度(背景的src圖像intead)?Android:如何設置ImageButton的src圖像的高度/寬度?

我想設置頂層圖像(不是背景)圖像的高度/寬度,圖像的大小應當代替定製的fullfill按鍵自動

+0

可能重複:http://stackoverflow.com/questions/6899088/adjusting-the-size-of-an-imagebutton-in-android – 2011-11-17 09:00:16

+2

我想設置的高度/寬度頂級圖像(不是背景)圖像,圖像的大小應該自定義,而不是自動填充按鈕。 –

回答

2

XML

<ImageButton 
android:id="@+id/picture_id" 
android:layout_width="10dp" //here width with unit. 5 dp exemple 
android:layout_height="3dp" //here height with unit. 3 dp exemple 
android:src="@drawable/picture_name" 
/> 

編輯:(java代碼)

// load the origial BitMap (500 x 500 px) 
    Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), 
      R.drawable.android); 

    int width = bitmapOrg.width(); 
    int height = bitmapOrg.height(); 
    int newWidth = 200; 
    int newHeight = 200; 

    // calculate the scale - in this case = 0.4f 
    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    // create a matrix for the manipulation 
    Matrix matrix = new Matrix(); 
    // resize the bit map 
    matrix.postScale(scaleWidth, scaleHeight); 
    // rotate the Bitmap 
    matrix.postRotate(45); 

    // recreate the new Bitmap 
    Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, 
         width, height, matrix, true); 

    // make a Drawable from Bitmap to allow to set the BitMap 
    // to the ImageView, ImageButton or what ever 
    BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); 

    ImageView imageView = new ImageView(this); 

    // set the Drawable on the ImageView 
    imageView.setImageDrawable(bmd); 

    // center the Image 
    imageView.setScaleType(ScaleType.CENTER); 

    // add ImageView to the Layout 
    linLayout.addView(imageView, 
      new LinearLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT 
      ) 
    ); 
+0

它只是調整整個按鈕的寬度和高度,我想調整src圖像。 –

+0

你可以用java代碼來完成。 – damson

+0

謝謝,這對我來說有點複雜。我轉而使用另一個圖標走動。 –

6

您可以使用Bitmap.cr eateScaledBitmap將圖像縮放到所需的大小。

Bitmap image = ... //load image from your source 
image = Bitmap.createScaledBitmap(image, desiredHeight, desiredWidth, true); 
+0

根據[docs](https://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap)將尺寸倒置,你需要像這樣:'image = Bitmap.createScaledBitmap( image,desiredWidth,desiredHeight,true);' –

19

你可以使用的ImageButtonscaleType屬性。 根據您的需要將其設置爲fitXYfitCenter或其他任何東西。

這樣

<ImageButton 
    android:id="@+id/imageButton" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:scaleType="fitCenter" 
    android:src="@drawable/some_image"> 
</ImageButton> 
+2

這應該是公認的答案。 – MeetTitan

+1

這不回答問題。問題是要求設置'android:src'而不是整個'ImageButton'的大小。例如。具有一個100dp x 100dp的ImageButton和35dp x 35dp的src圖像 – Weizhi

3

我有同樣的問題...更改圖像按鈕的「SRC」圖像的大小(按鈕的不是大小隻是圖像只)。

我did--

我感動從‘繪製’文件夾中的「png格式」文件‘繪製,華電國際’文件夾。

奇怪......但它的工作。

感謝,

相關問題