gpt4 book ai didi

android - 使用八哥对 Android 设备进行缩放会导致一些布局问题

转载 作者:搜寻专家 更新时间:2023-11-01 09:00:20 27 4
gpt4 key购买 nike

我正在使用此 article 中所写的第三种多分辨率技术

为了确定比例因子和舞台大小,我使用了这段最初由 Jeff 编写的代码:

        if (Capabilities.screenDPI >= 200) {
if (Capabilities.screenDPI >= 280) {
AssetFactory.contentScaleFactor = 2;
}
else {
AssetFactory.contentScaleFactor = 1.5;
}
}
else {
AssetFactory.contentScaleFactor = 1;
}

var mViewPort:Rectangle = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight);

mStarling = new Starling(Startup, stage,mViewPort);
mStarling.stage.stageWidth = stage.fullScreenWidth / AssetFactory.contentScaleFactor;
mStarling.stage.stageHeight = stage.fullScreenHeight / AssetFactory.contentScaleFactor;

然后我使用这个比例因子来确定我需要选择的 Assets 大小。

所以现在,我有一个可以拉伸(stretch)到舞台宽度和大小的背景。当我用大多数设备进行测试时,这种技术效果很好,但后来我们有了像 Barnes and Noble Nook Color 这样的设备。

设备的分辨率为 600x1024,dpi 为 170。这意味着它将选择最小的 Assets (320x480) 并将其拉伸(stretch)至 600x1024。这当然是像素化的。关于如何解决这个问题的任何想法?

我还附上了一个详细显示问题的测试应用程序 https://dl.dropbox.com/u/2192209/scaling%20test.zip

最佳答案

到目前为止,对我最有效的是根本不缩放 Starling 的视口(viewport)。它应始终保持基本尺寸 (320x480)。

然后你有一个关于纹理应该有多大的比例因子。这是 Starling 在创建纹理时的内置功能 - 传递比例因子。这意味着如果您的舞台是 640x960,您的比例因子将为 2。您的图像(位图对象)的实际屏幕尺寸为 320x480(全屏,舞台尺寸为 1:1),但它是纹理(加载的 Assets BitmapData ) 将是原来的两倍(640x960,与手机尺寸的比例为 1:1)。

为了更容易理解 - Starling 的舞台 (320x480) 将按比例放大以适应您手机的分辨率 (320 -> 640)。但是您的图像将按比例缩小以适合舞台 (640 -> 320)。所以你得到完全正常的图像。

这有助于您保持舞台的固定大小。这真的很有用,因为否则很难定位对象——如果你想让对象在中间,它有时是 160,有时是 320,等等。这意味着你总是必须通过计算来设置位置/大小,这是一个过载。

希望对您有所帮助!

编辑:刚刚想起一个我用来确定我的主要规模和 Assets 比率的网站:http://screensiz.es/phone

关于android - 使用八哥对 Android 设备进行缩放会导致一些布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542496/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com