由于图像太多,应用程序大小太大

Isu*_*uru 5 screen-orientation screen-size image-scaling orientation-changes ios

我正在创建一个通用应用程序.对于一个屏幕,我使用控件在网格中显示6个图像(png格式).此屏幕还支持纵向和横向.

我为所有iDevices创建了一组不同分辨率的图像,并使用正确的命名约定命名它们,如下所示.

  • 名〜iphone.png
  • name@2x~iphone.png
  • 名〜ipad.png
  • name@2x~ipad.png
  • name-568h@2x~iphone.png(iPhone 5)

而且我必须创建另一组这些图像,因为我支持两种方向,我不能使用与上面相同的图像,因为在景观中它会拉伸.

现在我只有一个屏幕有近60张图像,应用程序已经重达40MB!不言而喻,这是不可接受的.

我的问题是,是否有必要为所有这些尺寸/设备和方向创建单独的图像?我不能只为视网膜显示器创建一个设置,它会缩小到正常显示吗?如果那是不可能的,有没有办法缩小图像的大小?

谢谢.

And*_*rea 2

不是强制性的,但您应该这样做或至少平衡其他因素。如果不这样做,主要问题与内存 (RAM) 问题有关,较大的图像会占用大量内存空间,而分辨率较低的设备的内存比视网膜设备少。所以收缩并不是最好的选择。
一种可能的解决方案是采用一个“大”图像,该图像也可以调整其他图像的大小。为此,您需要使用 Core Graphics 或 ImageIO 重新绘制图像,该库可能很有用NYXImagesKit。当然,这是要付出代价的:

  1. 它需要计算时间
  2. 源“大图像”应该至少打开一次来进行计算,如果你已经内存不足,这可能是一个问题

对于 GUI(不仅仅是)元素,还有另一种解决方案,即使用 PDF vect 图像。您可以在这里找到Matt Gemmel 撰写的
一篇有趣的文章 如果您的图像不使用 Alpha 通道,请使用 jpg!!!!