您如何处理在 Adobe AIR 基础 iOS 应用程序中交换正确的 dpi 位图?你有每个图像的两个版本吗?您是在检测到设备分辨率后在运行时加载它们,还是只是将它们都嵌入并随时选择适当的分辨率图像?或者你只是缩小你的 HiDPI 图像?
问问题
267 次
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
根据您的图像(带或不带文本),我喜欢使用矢量并在运行时创建缩放位图,当它们没有文本时。但是在将矢量绘制到位图时,使用过滤器可能会成为一个问题。
对于带有文本的图像,我在我的资产中使用预渲染的图像,并在运行时相应地加载它们。这是一篇很棒的文章,解释了最佳实践
Adobe-AIR 中的多种屏幕尺寸
于 2013-09-20T18:18:13.237 回答