3

iPhone 4 上令人惊叹的显示屏使我们能够制作更高分辨率的艺术品以利用新屏幕。

我的问题是,应用图像的更好方法是什么?目前,有两种方法可以做到这一点:

  • 使用两个图像:“image.png”和“image@2x.png”。这样做的问题是,如果您的应用程序需要大量图像,则捆绑包的大小会大大增加。此外,您必须缩放图像并正确保存它们,这可能需要相当长的时间。

  • 缩放图像。您只加载大图像,然后在代码中或使用 Interface Builder 将其缩放到 50%。这减少了包大小和设计时间,但在小屏幕上可能看起来不太好。

你认为哪种方法最好,为什么?

4

5 回答 5

5

还要考虑设备内存。如果您在较旧的设备(3G、3GS)上加载双倍尺寸的图像,它们可能会按比例缩小显示(如果您在其容器视图上适当设置缩放属性),但较大的图像仍占用两倍的内存。一次加载。随着您使用的图像数量的增加,浪费的 RAM 量也会增加。

如果您只加载适合运行应用程序的设备的内容,从长远来看,您将看到性能优势。

编辑:我应该注意这意味着我的投票是使用两个单独的图像文件。如果不清楚:)

于 2010-08-18T14:49:04.773 回答
3

Bundle Size != 无线设计规定的 Ram 大小。不用担心捆绑包的大小。如果您真的担心支持真正的旧设备(如原始 iPod Touches),请发布该应用程序的两个版本。

否则,只加载适合手头设备的图像。

于 2010-08-18T14:53:09.743 回答
3

这取决于。如果可能的话,永远不要为高分辨率显示重新缩放低分辨率图像。

对于像图标这样的东西,每个像素都很重要,你需要高分辨率和低分辨率版本。

对于其他人,如摄影图像和背景,缩小比例很好 - 如果做得正确。

于 2010-08-18T14:37:15.503 回答
1

我制作了一个包含大约 100 张图像的应用程序(每个版本的显示)。该应用程序是超通用的(支持 iPad、iPhone/iPod touch 和 iPhone 4 的显示屏)。包大小确实增加了,但这不是问题(在我的应用程序中,主要部分是图像和声音 - 每个图像都有声音)并且大小小于 100 MB。这是很多,但你看到它并没有增长那么大的比例。您应该始终将兼容性放在首位。

正如有人之前所说,你的包的大小对你的应用程序使用的内存没有任何影响。如果您不想使用 2 个版本的图像,请不要费心在代码中放大它们。它们在 iPhone(像素化)或 iPhone 4 显示器(模糊)上效果不佳。相信我,我有这方面的经验。

于 2010-08-18T17:03:03.630 回答
1

如果运行超过20MB 限制,肯定会在代码中缩放图像。在那一点上,捆绑包的大小确实变得很重要。如果人们无法在 3G 上安装您的应用程序,将会丢失很多下载。

除了 20MB 的规则,最好有单独的图像,但如果不能,以编程方式将 UIImage 重新缩放为更小的 UIImage,然后将它们打包到 UIImageView 中,但不要将 100x100 UIImage 放入 50x50 UIImageView。重新缩放 UIImage 最终看起来最好。

于 2010-08-18T15:18:21.330 回答