0

您如何处理在 Adob​​e AIR 基础 iOS 应用程序中交换正确的 dpi 位图?你有每个图像的两个版本吗?您是在检测到设备分辨率后在运行时加载它们,还是只是将它们都嵌入并随时选择适当的分辨率图像?或者你只是缩小你的 HiDPI 图像?

4

2 回答 2

0

我个人避免为移动设备缩放图像,尤其是在 AIR 中。嵌入图像也会使您的内存使用量和 swf 大小膨胀,鉴于资源有限,这并不理想。我将资产文件夹结构分为 160、240、320,并在加载资产之前在运行时查询应用程序 DPI。

创建一个包含这样的静态方法的简单类可能很有用。

 public static getAssetPath(name:String, ext:String):String {
    switch(DPI) {
        case 320:
             return "assets/320/" + name + ext;
        case 240:
             return "assets/240/" + name + ext;
        case 160:
             return "assets/160/" + name + ext;
        default:
             throw new Error("Unknown device DPI");
    }
}

希望有帮助。

于 2013-09-20T18:13:08.887 回答
0

根据您的图像(带或不带文本),我喜欢使用矢量并在运行时创建缩放位图,当它们没有文本时。但是在将矢量绘制到位图时,使用过滤器可能会成为一个问题。

对于带有文本的图像,我在我的资产中使用预渲染的图像,并在运行时相应地加载它们。这是一篇很棒的文章,解释了最佳实践
Adob​​e-AIR 中的多种屏幕尺寸

于 2013-09-20T18:18:13.237 回答