3

我有一个奇怪的问题,使用 drawBitmap 和 setBackgroundDrawable 的组合使我的图像看起来比实际小 2 倍。

下面是我创建新位图和画布的代码。然后它在画布上绘制位图并将新位图作为现有布局的背景。我必须使用这种方法,因为稍后我将操作画布。

Bitmap left = BitmapFactory.decodeResource(getResources(), resID);      
// Create a temporary bitmap
Bitmap tempBitmap = Bitmap.createBitmap(
        left.getWidth(),
        left.getHeight(),
        Bitmap.Config.ARGB_8888);           
Canvas tempCanvas = new Canvas(tempBitmap);         
//Draw bitmap on canvas
tempCanvas.drawBitmap(left, 0, 0, null);
background.setBackgroundDrawable(tempBitmap);

我尝试使用tempCanvas.scale(2, 2);,这确实将“像素”缩放回正常,但它不会缩放矩形。

如果我使用background.setBackgroundResource(resID);背景图像以正确的大小显示,这排除了我的 MDPI/HDPI/XHDPI 文件夹的任何问题。

为什么我的背景图像在设置时以较小的比例显示setBackgroundDrawable()

4

2 回答 2

3

我解决了这个问题

tempCanvas.setDensity(Bitmap.DENSITY_NONE);
于 2013-08-17T21:03:55.230 回答
0

添加到 AndroidManifest

<supports-screens
            android:resizeable="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:anyDensity="true"/>
于 2013-08-17T19:38:18.583 回答