2014-02-24 42 views
3

解決Android手機各種屏幕比例的最佳方法是什麼?管理不同的手機屏幕尺寸 - Haxe,OpenFL

目前,我使用EXACT_FIT,它強制(拉伸)應用程序到目標屏幕。但是,如何動態地將我的內容重新調整到屏幕比例,因此內容仍以相同的比例呈現。

回答

2

如果要動態調整大小和定位元素,必須獲得實際的屏幕分辨率,然後根據某個「基本」分辨率值計算大小調整比率。

您可以

lib.current.stageWidth lib.current.stageHeight

記住,這些值來工作,你有你的窗口尺寸設置爲0,在Android上你的項目配置文件中獲取的屏幕尺寸。

0

我建議您通過試錯找到適合所有屏幕的尺寸。一旦你找到這個屏幕大小,你的遊戲就會增加一個邊界,比大多數玩家會看到的更遠。這樣可以讓您填充每個屏幕並保持縱橫比,同時還可以消除邊緣周圍任何難以處理的空白區域。完成此操作後,您應該能夠縮放屏幕以適應屏幕的高度或寬度(它始終保持您的寬高比),並且不存在任何縮放問題。

0

我會建議定義您的內容的位置&大小作爲屏幕寬度和高度的百分比。在僞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_WIDTHSCREEN_HEIGHT可能會改變,但title文本將在相同的明顯位置。

2

得到正確和真實的窗口中使用這個尺寸:

Lib.application.window.width 
Lib.application.window.height 

它並不總是thesame這樣:

Lib.current.stage.width 
Lib.current.stage.height