4

我正在制作一个安卓游戏。我在 Galaxy sII 上测试我的应用程序。我取得了很大的进步。不幸的是,我忽略了为其他设备测试它。我知道我会遇到不同类型设备的不同分辨率问题。但我认为我可以通过安排我的坐标值来处理。但现在我看到这是一项非常艰巨的任务。我不能回到起点,因为我写了很多代码。

我的问题是,尽管我给出了 800x480 的值,但有什么方法可以将画布拉伸/收缩到其他分辨率?

PS:我的画布Canvas canvas = holder.lockCanvas();在我的线程中。

谢谢

4

3 回答 3

1

您可以做的是使用画布作为视图绘制并在 xml 中设置布局参数。这将允许 Canvas 视图以最小的努力随着每个分辨率动态变化。

就像一个 SurfaceView。

于 2013-03-16T16:18:19.647 回答
1

我对这件事并不完全胜任,但是您应该能够在 Canvas 上进行矩阵转换。看看这个类似的问题是否会提供一个起点。另外,请阅读Wikipedia中的相关内容。

编辑:我现在想到这可能会将物体或物体的一部分放置在屏幕之外或引入透视问题......

于 2013-03-16T15:24:27.897 回答
1
    canvas.scale(float scaleX, float scaleY). Try this.

还要考虑文档中的提示。http://developer.android.com/guide/practices/screens_support.html

于 2013-03-16T16:20:46.010 回答