您如何处理在Adobe AIR基础iOS应用程序中交换正确的dpi位图?你有每个图像的两个版本?您是否在检测到设备分辨率后在运行时加载它们,或者您只是将它们嵌入并同时选择适当的分辨率图像?或者你只是缩小你的HiDPI图像?
答案 0 :(得分: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");
}
}
希望有所帮助。
答案 1 :(得分:0)
根据您的图像(有或没有文本),我喜欢使用向量并在运行时创建缩放的位图,因为它们中没有文本。但是,在将矢量绘制到位图时,使用滤镜可能会成为一个问题。
对于带有文本的图像,我在我的资源中使用预渲染图像,并在运行时相应地加载它们。这是一个伟大的Artikle解释最佳实践
Adobe- Multible screen sizes in AIR