0

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

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

我将如何进行使该游戏适合任何屏幕尺寸的过程,因为显然一个屏幕的像素值不会在不同的屏幕上正常运行!

提前致谢

4

2 回答 2

1

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

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

dp Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位相对于 160 dpi(每英寸点数)的屏幕,因此无论屏幕密度如何,160dp 始终是一英寸。dp与像素的比例会随着屏幕密度而变化,但不一定成正比。在布局中指定视图尺寸时应使用这些单位,以便 UI 正确缩放以在不同屏幕上以相同的实际尺寸呈现。(编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。)

于 2011-09-01T14:24:27.643 回答
1

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

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

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

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

于 2011-09-01T14:25:33.773 回答