Android自定义视图 - 调整到不同的屏幕

时间:2012-03-13 17:50:55

标签: java android surfaceview autosize

我正在使用扩展基本表面视图的类。这个类包含我游戏的主要逻辑。在课堂上我有主要的更新功能以及我的绘图代码,它们都是基于画布的。

我目前没有在我的代码中使用任何XML。我创建了一个SurfaceView类的新实例,并将其设置为活动的视图。我的问题是,支持多种屏幕尺寸的最佳方式是什么?

因为我正在编写游戏,所以我不希望在新的屏幕尺寸上有任何不同的布局。我只想缩放游戏,如果屏幕比例与我的开发设备不匹配,可能会显示一些空格。

我已阅读Android开发人员指南,但在您不使用XML时,它最终没有给出实际实施策略的答案。

1 个答案:

答案 0 :(得分:1)

我在这里遇到同样的问题,但我会尝试解释我目前发现的问题。

当然,您需要了解游戏运行的屏幕,访问devoloper的页面以了解获取游戏的方式。

http://developer.android.com/reference/android/util/DisplayMetrics.html

您需要处理与密度无关的像素,以确保您的游戏行为在每个不同的显示中都是相同的。谷歌小组上有一篇帖子,如果你还不知道,可能会帮助你理解dp。

http://groups.google.com/a/googleproductforums.com/forum/#!category-topic/mobile/android-devices/jeflid4UsMQ

现在主要问题是:图片。

只有4种可绘制文件夹,如您所知(低,中,高和xhigh dpi)。问题是10英寸的平板电脑和4英寸的SmarthPhone可能具有相同的分辨率或dpi(每英寸点数)。因此,当从同一个可绘制文件夹打印图像时,即使设备的屏幕是两倍大,它也会具有相同的大小。

此时,您可以根据需要使用多种不同的解决方案。调整图像大小,使整个视图更大......但您可能需要DisplayMetrics类信息。我仍在努力做出决定,但如果你有任何更具体的问题,我会尽力回答。