6

我需要缩放按钮的背景图像,但不能将其变成位图。这是现在的代码:

int height = 50;
int width = 80;

Button b = new Button (this);
b. setBackgroundResource(R.drawable.btn);

现在我需要根据“高度”和“宽度”来缩放“R.drawable.btn”。setBackgroundResource 不接受位图。我怎么做?

谢谢你。

4

2 回答 2

18

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

允许布局缩放图像:

b.setBackground(getResources().getDrawable(R.drawable.btn));

手动缩放图像:

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

警告:图像可能不会完全按照您的预期显示在屏幕上。这是因为根据您的布局参数Button,Android 可能会根据您设备的硬件屏幕密度额外缩放图像。

于 2013-03-26T01:26:45.700 回答
0

这会将位图变成可绘制的

image = new BitmapDrawable(getResources(),MenuScreen.image1);

image 是可绘制的,而 image1 是位图

于 2013-03-26T01:30:53.937 回答