不同大小的游戏屏幕 - 安卓

时间:2011-09-01 14:22:05

标签: android game-development

我之前已经问过这个但是我仍然遇到这个问题的问题!

基本上,我在使用画布为游戏绘制图像时硬编码像素值。

我如何才能使这款游戏适合任何屏幕尺寸,因为显然一个屏幕的像素值不能在不同的屏幕上正常运行!

提前致谢

2 个答案:

答案 0 :(得分:1)

为什么需要像素值?使用dp而不是px值!!

final float scale = getContext().getResources().getDisplayMetrics().density;
int px = (int) (dp * scale + 0.5f);
  

dp与密度无关的像素 - 一个基于该的抽象单位   屏幕的物理密度。这些单位相对于160 dpi   (每英寸点数)屏幕,所以160dp总是一英寸而不管   屏幕密度。 dp与像素的比率将随屏幕而变化   密度,但不一定是正比例。你应该用   在布局中指定视图尺寸时,这些单位,以及UI   适当缩放以在不同的实际尺寸上渲染   屏幕。 (编译器接受“dip”和“dp”,但“dp”是   更符合“sp”。)

答案 1 :(得分:1)

您应该能够使用以下内容来获取屏幕尺寸:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

然后根据您的需要决定做什么 - 拉伸原始分辨率以适应,直接绘制到较大的分辨率等。

如果您的画布只是屏幕的一部分,请跟踪其左上角的相对位置,并相应地缩放位置/大小。