Android:SurfaceView画布大小与目标设备像素不同

Android:SurfaceView画布大小与目标设备像素不同,android,scaling,surfaceview,Android,Scaling,Surfaceview,我是Android编程新手。我有一个小游戏,我把所有的东西都画在屏幕外的画布上。当我想展示它时,我使用从SurfaceView派生的Cals。它工作正常。问题是屏幕外画布是480x800(目标设备分辨率)像素,但我通过getHolder()获得的SurfaceView画布。lockCanvas()仅为240x480。因此,它看起来真的很难看-它首先从屏幕外的画布缩小到SurfaceView画布(放松小细节),然后放大以适应设备屏幕(拉伸回原始大小) 由于模拟器也在运行480x800,我不知道为什

我是Android编程新手。我有一个小游戏,我把所有的东西都画在屏幕外的画布上。当我想展示它时,我使用从SurfaceView派生的Cals。它工作正常。问题是屏幕外画布是480x800(目标设备分辨率)像素,但我通过getHolder()获得的SurfaceView画布。lockCanvas()仅为240x480。因此,它看起来真的很难看-它首先从屏幕外的画布缩小到SurfaceView画布(放松小细节),然后放大以适应设备屏幕(拉伸回原始大小)

由于模拟器也在运行480x800,我不知道为什么SurfaceView创建得这么小。为什么它不是以模拟设备的大小创建的?我最终通过设置固定大小的holder(getHolder().setFixedSize(480800))绕过了它,但这是正确的方法吗


有没有其他方法可以强制设备创建像素大小的SurfaceView?

尝试将其添加到应用程序标记之外的清单中

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