2011-09-01 246 views
0

我以前曾问过这个问题,但是我仍然遇到这个问题!不同尺寸的游戏屏幕 - android

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

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

在此先感谢

+0

这可能是一个重复的http://stackoverflow.com/questions/7061258/multiple-screen-resolutions-aspect-ratios-games – Phil

回答

1

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

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

DP密度独立像素 - 即基于屏幕的 物理密度的抽象单元。这些单位相对于160 dpi(每英寸点数)屏幕,因此无论屏幕密度如何,160dp始终为1英寸。 dp与像素的比率将随屏幕密度而改变,但不一定成正比。在指定布局中的视图尺寸时,您应该使用这些单位,因此UI 可以在不同的 屏幕上正确缩放以呈现相同的实际尺寸。 (编译既接受“浸”和“DP”,虽然“DP”是 与“SP”更加一致。)

+0

我该如何做到画到画布? –

1

,你应该能够使用以下,以获得屏幕尺寸:

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

然后决定你认为合适做什么 - 舒展你的原始分辨率,以适应,直接绘制到更大的资源,等等

如果你的画布只是屏幕的一部分,跟踪其相对于左上方的位置并相应地缩放位置/尺寸。