Java Android:使用setBackgroundDrawable设置后,位图显示得更小
我有一个奇怪的问题,使用drawBitmap和setBackgroundDrawable的组合会使我的图像看起来比实际图像小2倍 下面是我创建新位图和画布的代码。然后在画布上绘制位图,并将新位图作为现有布局的背景。我必须使用这个方法,因为稍后我将操作画布Java Android:使用setBackgroundDrawable设置后,位图显示得更小,java,android,android-layout,bitmap,android-canvas,Java,Android,Android Layout,Bitmap,Android Canvas,我有一个奇怪的问题,使用drawBitmap和setBackgroundDrawable的组合会使我的图像看起来比实际图像小2倍 下面是我创建新位图和画布的代码。然后在画布上绘制位图,并将新位图作为现有布局的背景。我必须使用这个方法,因为稍后我将操作画布 Bitmap left = BitmapFactory.decodeResource(getResources(), resID); // Create a temporary bitmap Bitmap tempBitmap =
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()
设置时显示的比例较小 添加到AndroidManifest
<supports-screens
android:resizeable="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
我修复了
tempCanvas.setDensity(Bitmap.DENSITY_NONE);
这并没有解决问题,但它确实让我检查问题是否在MDPI设备上。显然不是。所以它确实与画布密度(?)有关。但仍然不知道如何修复它!