我之前问过这个问题,但是我仍然遇到这个问题!
基本上,我在使用画布为游戏绘制图像时对像素值进行硬编码。
我将如何进行使该游戏适合任何屏幕尺寸的过程,因为显然一个屏幕的像素值不会在不同的屏幕上正常运行!
提前致谢
本
我之前问过这个问题,但是我仍然遇到这个问题!
基本上,我在使用画布为游戏绘制图像时对像素值进行硬编码。
我将如何进行使该游戏适合任何屏幕尺寸的过程,因为显然一个屏幕的像素值不会在不同的屏幕上正常运行!
提前致谢
本
为什么需要像素值?使用 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”更一致。)
您应该能够使用以下内容来获取屏幕尺寸:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
然后决定你认为合适的方法——拉伸你的原始分辨率以适应,直接绘制到更大的分辨率,等等。
如果您的画布只是屏幕的一部分,请跟踪其与左上角的相对位置并相应地缩放位置/大小。