Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AIR for iOS并显示正确的DPI图像_Ios_Air_Bitmap_Dpi - Fatal编程技术网

AIR for iOS并显示正确的DPI图像

AIR for iOS并显示正确的DPI图像,ios,air,bitmap,dpi,Ios,Air,Bitmap,Dpi,您如何处理在Adobe AIR base iOS应用程序中交换正确的dpi位图?每个图像有两个版本吗?您是在检测到设备分辨率后在运行时加载它们,还是将它们都嵌入并在运行时选择适当的分辨率图像?还是只是缩小HiDPI图像的比例?我个人避免缩放移动设备的图像,尤其是在空中。嵌入图像还会增加内存使用量和swf大小,这在资源有限的情况下并不理想。我将资产文件夹结构分为160、240、320,并在加载资产之前在运行时查询应用程序DPI 创建一个包含这样一个静态方法的简单类可能很有用 public sta

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

我个人避免缩放移动设备的图像,尤其是在空中。嵌入图像还会增加内存使用量和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");
    }
}
希望这能有所帮助。

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

对于包含文本的图像,我在资源中使用预渲染图像,并在运行时相应地加载它们。这里有一个很好的例子来解释最佳实践

我喜欢在应用程序启动后从文件系统显式加载资产时使用这种方法。你有没有用另一种方式,加载包含你资产的整个主权财富基金?我必须承认,我没有真正考虑过这种方法。你认为这种方法的优点/缺点是什么?我的应用程序目前不需要大量的资产,图像加载等都是我的对象生命周期中的一部分,因此加载前显示不是问题。我想这会提高应用程序的响应能力,但可能会在内存使用和可执行文件大小方面有所膨胀?我才刚刚开始,所以我还没有做过广泛的测试。当然,一个很大的优势是利用Flash的视觉布局潜力,而不是依赖坐标等。我认为这实际上取决于你正在使用的应用程序类型。如果这是一个游戏,或者有很多动态部分的东西,那么你的方法是最有意义的。不过,在我所做的上下文中,在运行时加载两个SWF似乎是我要做的事情。这对向量有效——听起来是个不错的解决方案。但我的问题是关于位图图像的。。。如何处理这些?不过,矢量在移动设备上的渲染速度相当慢。我知道在春季的一个项目中,我不得不用位图替换我的许多矢量,因为这会增加每帧的渲染时间。@JoshJanusch我在第一次应用程序启动时仅从矢量创建一次缩放位图,然后重用这些位图。正如你所说,康斯塔利绘制它们会降低性能。@托马格:在我回答的第二部分中,我指的是位图图像,应该更清晰,因为我所说的“图像”可能意味着任何东西。根据图片数量的不同,我要么只是dowscale租用png,要么在第一次启动应用时加载一个大小合适的swf。就像我说的,看看我添加的链接,这是一些很好的例子。加载swf不包括以下各项:(