3

处理安卓手机各种屏幕比例的最佳方法是什么?

目前,我使用 EXACT_FIT,它将应用程序强制(拉伸)到目标屏幕。但是如何根据屏幕比例动态调整内容的大小,以便内容在视觉上保持相同的比例。

4

4 回答 4

2

如果要动态调整元素的大小和位置,则必须获取实际的屏幕分辨率,然后根据某些“基本”分辨率值计算调整大小比率。

您可以通过以下方式获取屏幕尺寸

lib.current.stageWidth lib.current.stageHeight

请记住,要使这些值起作用,您必须在项目配置文件的 android 上将窗口尺寸设置为 0。

于 2014-03-07T17:15:04.803 回答
2

要获得正确和真实的窗口大小,请使用:

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

这并不总是相同的:

Lib.current.stage.width
Lib.current.stage.height
于 2014-12-03T01:36:31.247 回答
0

我建议您通过反复试验找到最适合所有屏幕的尺寸。一旦你找到这个屏幕尺寸,就为你的游戏添加一个边框,它的扩展范围比大多数玩家看到的要远。然后,这将允许您填充每个屏幕并保持宽高比,同时还可以消除边缘周围的任何尴尬空白。完成此操作后,您应该能够缩放屏幕以适应屏幕的高度或宽度(始终保持您的纵横比)并且没有任何缩放问题。

于 2014-03-04T16:29:07.300 回答
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_WIDTHandSCREEN_HEIGHT可能会发生变化,但title文本将位于相同的明显位置。

于 2014-11-21T12:20:03.950 回答