2012-03-13 73 views
1

我正在使用扩展基本表面视图的类。这个类包含我的游戏的主要逻辑。在课堂上,我有主要的更新功能以及我的绘图代码,这些代码都是基于画布的。Android自定义视图 - 调整到不同的屏幕

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

因为我在写一个游戏,我不希望在新的屏幕尺寸有什么不同的布局。我只是想扩展游戏规模,如果屏幕比例与我的开发设备不匹配,可能会显示一些空白。

我已经阅读了Android开发人员指南,但它最终并没有给我,当你不使用XML答案实际执行战略。

+0

应该有一些宽度和高度属性,您的表面视图获取(也许在onMeasure左右)。使用它可以根据百分比定义所有布局。 – zapl 2012-03-13 18:12:01

回答

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类信息。我仍在努力做出决定,但如果您有任何更具体的问题,我会尽力回答。

相关问题