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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With