Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:使用setBackgroundDrawable设置后,位图显示得更小_Java_Android_Android Layout_Bitmap_Android Canvas - Fatal编程技术网

Java Android:使用setBackgroundDrawable设置后,位图显示得更小

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 =

我有一个奇怪的问题,使用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()
设置时显示的比例较小

添加到AndroidManifest

<supports-screens
            android:resizeable="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:anyDensity="true"/>

我修复了

tempCanvas.setDensity(Bitmap.DENSITY_NONE);

这并没有解决问题,但它确实让我检查问题是否在MDPI设备上。显然不是。所以它确实与画布密度(?)有关。但仍然不知道如何修复它!