2011-09-01 178 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(); 

然後決定你認爲合適做什麼 - 舒展你的原始分辨率,以適應,直接繪製到更大的資源,等等

如果你的畫布只是屏幕的一部分,跟蹤其相對於左上方的位置並相應地縮放位置/尺寸。