我之前已经问过这个但是我仍然遇到这个问题的问题!
基本上,我在使用画布为游戏绘制图像时硬编码像素值。
我如何才能使这款游戏适合任何屏幕尺寸,因为显然一个屏幕的像素值不能在不同的屏幕上正常运行!
提前致谢
本
答案 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();
然后根据您的需要决定做什么 - 拉伸原始分辨率以适应,直接绘制到较大的分辨率等。
如果您的画布只是屏幕的一部分,请跟踪其左上角的相对位置,并相应地缩放位置/大小。