1

我是 Android 编程的绝对初学者,所以请多多包涵 :) 对于我的简单游戏,我在开始时绘制了一个由正方形组成的 20 x 10 网格。在游戏中,我需要在一些正方形的中心绘制一个精灵。(类似于棋盘格,每个正方形的中心都有一个筹码)。我希望这款游戏能够在各种屏幕尺寸和密度下运行。我的方法是在游戏开始时获取画布宽度和高度,计算正方形的边,然后绘制网格并将其保存为位图,然后在游戏中使用该位图。这样我的网格就可以完美地跨屏幕缩放。

1)有更好的方法吗?我可以使用网格图像作为位图吗?我担心的是,当图像针对不同的屏幕进行缩放时,正方形可能会变形为矩形。另外,很难计算每个缩放正方形的中心在哪里(放置精灵)。

2) 我还需要在屏幕上的某个位置显示标题、分数、级别等。是在位图上为它留出空间然后在位图上写分数,还是为网格创建一个带有 SurfaceView 的布局和另一个我写分数、级别等的视图?

谢谢!

4

1 回答 1

1

使用九个补丁 .png 图像并首先创建一个代表一个正方形的图像或创建一个代表您的 20x10 网格的图像 - 您的选择。这样做是为了让它在 mdpi(每英寸中点数)屏幕上看起来正确。

然后,您需要为您打算支持的其他屏幕密度创建预缩放图像。ldpi 的大小是原始的 0.75,hdpi 是原始大小的 1.5 倍,xhdpi 是原始大小的 2 倍。

然后将图像放在项目的相关可绘制资源目录中 - 例如 /res/drawable-mdpi 和 /res/drawable-hdpi 等。

为每个密度的图像赋予完全相同的名称,例如 square.png 或 grid.png。只要这些可绘制目录包含同名的图像,Android 就会找到合适的密度并使用它。

这是一个很长的文档,但你真的需要阅读......

支持多屏

...特别是 Alternative Drawables 的部分。

于 2012-05-17T18:31:07.717 回答