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

时间:2011-09-24 12:43:28

标签: android scaling surfaceview

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

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

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

1 个答案:

答案 0 :(得分:1)

尝试将此添加到应用标记之外的清单中。

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