解決Android手機各種屏幕比例的最佳方法是什麼?管理不同的手機屏幕尺寸 - Haxe,OpenFL
目前,我使用EXACT_FIT,它強制(拉伸)應用程序到目標屏幕。但是,如何動態地將我的內容重新調整到屏幕比例,因此內容仍以相同的比例呈現。
解決Android手機各種屏幕比例的最佳方法是什麼?管理不同的手機屏幕尺寸 - Haxe,OpenFL
目前,我使用EXACT_FIT,它強制(拉伸)應用程序到目標屏幕。但是,如何動態地將我的內容重新調整到屏幕比例,因此內容仍以相同的比例呈現。
如果要動態調整大小和定位元素,必須獲得實際的屏幕分辨率,然後根據某個「基本」分辨率值計算大小調整比率。
您可以
lib.current.stageWidth lib.current.stageHeight
記住,這些值來工作,你有你的窗口尺寸設置爲0,在Android上你的項目配置文件中獲取的屏幕尺寸。
我建議您通過試錯找到適合所有屏幕的尺寸。一旦你找到這個屏幕大小,你的遊戲就會增加一個邊界,比大多數玩家會看到的更遠。這樣可以讓您填充每個屏幕並保持縱橫比,同時還可以消除邊緣周圍任何難以處理的空白區域。完成此操作後,您應該能夠縮放屏幕以適應屏幕的高度或寬度(它始終保持您的寬高比),並且不存在任何縮放問題。
我會建議定義您的內容的位置&大小作爲屏幕寬度和高度的百分比。在僞haXe的代碼(我正在學習HAXE/HaxeFlixel現在;)):
class Registry {
...
static var SCREEN_WIDTH;
static var SCREEN_HEIGHT;
...
static var X_UI_HUD_TITLE = 0.15;
static var Y_UI_HUD_TITLE = 0.05;
}
...
class HUD {
var title:FlxText;
public function new() {
title = new FlxText();
title.x = Registry.SCREEN_WIDTH * Registry.X_UI_HUD_TITLE;
title.y = Registry.SCREEN_HEIGHT * Registry.Y_UI_HUD_TITLE;
}
}
這樣,SCREEN_WIDTH
和SCREEN_HEIGHT
可能會改變,但title
文本將在相同的明顯位置。
得到正確和真實的窗口中使用這個尺寸:
Lib.application.window.width
Lib.application.window.height
它並不總是thesame這樣:
Lib.current.stage.width
Lib.current.stage.height