Java(Android):如何在没有Bitmap的情况下缩放drawable?

Bin*_*ter 6 scaling android

我需要缩放按钮的背景图像,但不能将其转换为位图.这是现在的代码:

int height = 50;
int width = 80;

Button b = new Button (this);
b. setBackgroundResource(R.drawable.btn);
Run Code Online (Sandbox Code Playgroud)

现在我需要根据"高度"和"宽度"缩放"R.drawable.btn".setBackgroundResource不接受Bitmap.我怎么做?

谢谢.

Dav*_*arl 18

您可以允许布局参数控制比例,也可以自己缩放图像.

允许布局缩放图像:

b.setBackground(getResources().getDrawable(R.drawable.btn));
Run Code Online (Sandbox Code Playgroud)

手动缩放图像:

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);
Run Code Online (Sandbox Code Playgroud)

警告:图像可能无法在屏幕上按预期缩放.这是因为根据您的布局参数Button,Android可能会根据您设备的硬件屏幕密度另外缩放图像.