【问题标题】:Different size screens for gaming - android不同尺寸的游戏屏幕 - 安卓
【发布时间】:2011-11-08 11:03:51
【问题描述】:

我之前问过这个问题,但是我仍然遇到这个问题!

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

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

提前致谢

【问题讨论】:

标签: android game-development


【解决方案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”。)

【讨论】:

  • 如何在画布上绘图?
【解决方案2】:

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

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

然后决定你认为合适的方法 - 拉伸你的原始分辨率以适应,直接绘制到更大的分辨率,等等。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多