Android:如何设置ImageButton的src图像的高度/宽度?

Android:如何设置ImageButton的图像的高度/宽度(背景的src图像intead)?

我想设置顶级图像(而不是背景)图像的高度/宽度,图像的大小应该自定义,而不是自动填充button

Related of "Android:如何设置ImageButton的src图像的高度/宽度?"

你可以使用ImageButtonscaleType属性。 根据您的需要将其设置为适合fitXYfitCenter或其他任何东西。

喜欢这个

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

您可以使用Bitmap.createScaledBitmap将图像缩放到所需的大小。

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

我有同样的问题…改变图像button的'src'图像的大小(不是button的大小只是图像)。

我做了什么 –

我把'.png'文件从'drawable'文件夹移动到'drawable-hdpi'文件夹。

奇怪…但它的工作。

谢谢,

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 ) );