【问题标题】:Android Custom View - Adjust to Different ScreensAndroid 自定义视图 - 适应不同的屏幕
【发布时间】:2012-03-13 17:50:54
【问题描述】:

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

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

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

我已经阅读了 Android 开发者指南,但它最终并没有为我提供不使用 XML 时的实际实施策略的答案。

【问题讨论】:

  • 你的表面视图应该有一些宽度和高度属性(可能在 onMeasure 左右)。使用它来根据其中的百分比定义所有布局。

标签: java android surfaceview autosize


【解决方案1】:

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

当然,您需要了解运行游戏的屏幕,请访问开发者页面了解获取方法。

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

您需要处理与密度无关的像素,以确保您的游戏行为在每个不同的显示器上都是相同的。如果您还不了解 dp,google groups 上有一个帖子可能会帮助您了解 dp。

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

所以现在的主要问题是:图像。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多