【问题标题】:How to draw background image and make it looks similar on all Android devices?如何绘制背景图像并使其在所有 Android 设备上看起来都相似?
【发布时间】:2011-12-20 15:38:24
【问题描述】:

寻找下一个问题的建议。我正在开发小游戏,我有一个 *.png 文件作为背景。我需要把它放在主游戏屏幕的背景上。此外,它的宽度必须是屏幕尺寸的 2 倍,高度必须是屏幕尺寸的 1.5 倍,因为我的对象“飞”过这些边界。此外,屏幕在游戏中围绕此背景移动。但我对如何做到这一点有点坚持。

我希望我的背景在不同尺寸和密度的所有屏幕上看起来都相似。我尝试了一些解决方案,但我不喜欢它们,或者我做错了什么:

  1. 制作不同的背景图像并将它们放在特殊文件夹中。听起来不错,但考虑到市场上 Android 设备的分辨率,这对我来说并不好。它只会使 *.apk 的大小更大。如果我将使用这些方法设置背景,它将拉伸图像 - 我认为这不是一个好主意。

  2. onDraw() 方法中,在画布上绘制图像。我必须把它的左上角放在可能的游戏区域的最左上角并绘制它。但是,这里有一些选项:

    • 从主图像中剪下我想要的图像并只画这幅(我现在使用的)
    • 调整我拥有的图像大小并使用这些更改进行绘制
    • 别的...

所以,问题是:当您需要它几乎比屏幕尺寸大两倍时,为游戏屏幕绘制背景的最佳选择是什么,使其在所有设备上看起来都一样,并在游戏时移动屏幕播放了吗?

【问题讨论】:

    标签: android background ondraw


    【解决方案1】:

    你应该使用 9 个补丁图像。

    NinePatchDrawable 图形是可拉伸的位图图像,Android 会自动调整其大小以适应您将其作为背景放置在其中的 View 的内容。

    查看此链接。 http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

    【讨论】:

    • 这是个好主意!谢谢!但是,如果图像内部没有类似的项目怎么办?如果它在每个部分都有独特的内容?据我了解,对于 9-patch,我必须定义一个实际将被复制的区域。你在绘制背景时使用过 9-path 吗?
    • 是的,我在我的大部分应用程序中都使用了 9-patch,也用于绘制背景。您必须定义可拉伸区域,以便当图像显示在较大的屏幕上时,它不会影响其他区域然后是可拉伸区域。
    • 我会和设计师谈谈。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2021-07-12
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多