Android:创建一个正方形网格,可以缩放而不会失真



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

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

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

谢谢!

使用九面色.png图像,首先创建一个代表一个正方形的图像,或者创建一个代表您的 20x10 网格的图像 - 您的选择。这样做,使其在 mdpi(中等每英寸点数(屏幕上看起来正确。

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

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

为每个密度为图像指定完全相同的名称,例如,正方形.png或网格.png。只要这些可绘制目录包含同名的图像,Android 就会找到适合正确密度的图像并使用它。

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

支持多屏

。特别是替代可绘制对象的部分。

最新更新