2014-02-24 41 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