我们可以只提供@ 2张图片吗?

我们知道我们应该为iPhone / iPad应用程序提供正常大小的图像和@ 2倍大小的图像。 但是提供一个图像的双倍大小是一件无聊的事情。

我做了一些testing,如果只有@ 2x图像,如果需要的话,系统会自动将@ 2x图像缩小到正常大小。 所以在这种情况下,没有视网膜的iPhone / iPad不会看起来怪异。

我想知道我们可以只提供@ 2倍的图像,让系统缩小他们得到更小的? 苹果允许吗?

谢谢。

编辑:

我意识到它会导致旧设备上的内存问题。

再次感谢。

苹果说,你必须提供这两个。 在猜测什么情况下可以接受或不可以,我们可以花几天时间 – 最后就像读卡片,一些随机的苹果公司的人将决定他如何解释指导方针。

如果手动收缩图像的任务对你来说太无聊,为什么不创build一个工具/脚本自动为你做。

编辑
你的陈述,没有增加使用不能是真实的。 图像数据作为原始数据存储在内存中。 每个像素最多四个字节。 视网膜版的图像必须使用大约4倍的内存。

我不认为所有的苹果都会拒绝你的应用程序。 但这不是一个好主意。

由于非视网膜设备的内存较less,因此将所有这些大的图像加载到内存中可能会使您更加容易使用内存。 这可能会使您的应用程序在低内存警告中崩溃。

您可以轻松地使用简单的自动设置脚本将@2x图像的大小调整为其大小的一半。 如果你真的不想这样做,那就没有必要去做了。

+1为一个有趣的问题。

但是 :如果你正在考虑这个,以减less你的应用程序的大小,这意味着你的应用程序中有很多图像。 在这种情况下: 不要这样做,因为你会在旧设备上进行大量的额外加载(testing)。

对于graphics较less的应用程序可以,但是没有任何意义。

所以从任何angular度来看,这都是一个坏主意。

而且,由于您已经在考虑创build所有的@ 2x图片:您可以​​简单地使用Unretiner将所有这些图片转换为“正常”尺寸,而且您还可以继续使用。

如果应用程序占用空间对您来说是一个主要问题,那么您可以采用这种方法,在较旧的设备上,CPU和内存空间都会增加(内存大约是原来的4倍)。 但是,如果您加载自己的UIImages(UIImage的子类),以便在旧设备上加载以在返回最终结果之前缩放原始图像,则只有CPU会受到打击。

如果您正在创build一个仅针对iOS 7.0或更高版本的iPhone应用程序,那么没有理由提供非视网膜图像,因为可以运行iOS 7或更高版本的iPhone / iPod机型(iPhone 4或第5代iPod Touch及更高版本)一个视网膜显示。

有两个没有视网膜显示屏的iPad,可以运行iOS 7.0,iPad 2和iPad Mini。 请注意,iPad 2在2014年初停止了生产。如果您正在创build一个iPad应用程序或iOS 7以上的通用应用程序,那么这些是唯一可以运行您的应用程序的两个非视网膜设备。

是的,因为iPhone需要在缩小之前加载@ 2x图像,这将使用4倍的内存。 所以这不是一个推荐的方法。

这是不允许的苹果。 我们必须将图像命名为imagename.png和imagename@2x.png。

您可以参考iOS的绘图和打印指南 。

我们只在我们的应用程序中提供@ 2x图像,而苹果公司并没有拒绝这个应用程序。