I need to scale the background image of a button but can't turn it into a Bitmap. Here is the code right now:
int height = 50;
int width = 80;
Button b = new Button (this);
b. setBackgroundResource(R.drawable.btn);
Now I need to scale "R.drawable.btn" according to the "height" and "width". The setBackgroundResource won't accept a Bitmap. How do I do that?
Thank you.
You can allow the layout parameters to control the scale or you can scale the image yourself.
Allow the layout to scale the image:
b.setBackground(getResources().getDrawable(R.drawable.btn));
Scale the image manually:
Bitmap original = BitmapFactory.decodeResource(context.getResources(), R.drawable.btn);
Bitmap b = Bitmap.createScaledBitmap(original, width, height, false);
Drawable d = new BitmapDrawable(context.getResources(), b);
button.setBackground(d);
Warning : The image may not appear onscreen scaled exactly as you expect. This is because depending on the layout parameters of your Button
, Android may additionally scale the image based on the hardware screen density of your device.
this will turn a bitmap into a drawable
image = new BitmapDrawable(getResources(),MenuScreen.image1);
image is the drawable and image1 is the bitmap
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.