縮放水平加載器的數學計算其實很簡單。 首先,您應該從選擇默認比例開始。意思是將您的240x320屏幕分辨率,以及您的平臺的座標和尺寸
現在,我們應該知道您的遊戲正在運行的設備的屏幕分辨率。下面將抓取屏幕分辨率爲您提供:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
如果你的目標前13 API,那麼你不能使用display.getSize,而不是你應該使用:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
現在,我們有新的決議,我們可以找到你們之間默認的(240×320)分辨率和一個新的設備上規模的區別:
float xScale = (float)width/240.0f;
float yScale = (float)height/320.0f;
這是FORC重要e這些值爲float或double,因爲它將它們保留爲整數,因此它將不會正確縮放,因爲十進制值將被省略,並且您將有一個四捨五入的整數。這是不準確的,不會允許適當的縮放。
一旦你有了規模,你可以開始調整大小,並相應地移動你的對象。
例如,如果你的第一個平臺的立場是
int x = 200;
int y = 120;
,那麼只需在採取這些價值觀和規模,使它們相乘:
int x = (int)(200 * xScale);
int y = (int)(120 * yScale);
您還需要爲做到這一點平臺尺寸:
int width = (int)(30 * xScale);
int height = (int)(15 * yScale);
將30和15替換爲寬度an d平臺的高度
重要事項: 以這種方式縮放座標時,您需要縮放所有座標。這意味着如果您使用座標來檢測邊界和碰撞,那麼這些座標也必須相應地縮放以匹配。
這是另一篇關於如何獲得android設備分辨率的文章。
Getting screen resolution
希望這有助於和好運。
一個令人驚訝的詳細答案。非常感謝:) – Wikaman1
沒問題,只是想幫忙。 –