Android: как установить высоту / ширину изображения src в ImageButton?

Android: как установить высоту / ширину изображения (изображение src на фоне фона) ImageButton?

Я хочу установить высоту / ширину изображения верхнего уровня (не фонового), размер изображения должен быть настроен, а не полностью заполнять кнопку автоматически

Solutions Collecting From Web of "Android: как установить высоту / ширину изображения src в ImageButton?"

Вы можете просто использовать атрибут ImageButton для ImageButton . Установите его как fitXY или fitCenter или что-нибудь еще в соответствии с вашими потребностями.

как это

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

У меня была такая же проблема … измените размер кнопки изображения src image (а не только размер кнопки только для изображения).

что я сделал–

Я перенес эти файлы .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" /> 

EDIT: (код 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 ) );