为iphone和ipad创建图像,4张图像?

时间:2013-07-02 15:17:57

标签: iphone ios

当我为iPhone,iPhone视网膜,iPad,iPad视网膜创建ImageView图像时,我应该创建4张图像吗?

例如,我使用的硬币图像 - >

  1. coin.png
  2. coin@2x.png
  3. coinIpad.png
  4. coinIpad@2x.png
  5. 我可以创建最大尺寸的图像(imageIpad@2x.png),在Xcode中选择Aspect Fit吗?

    [UIImage imageNamed:@"imageIpad@2x.png"];
    

    执行此操作的常用方法是什么?

4 个答案:

答案 0 :(得分:1)

仅创建一个图像并依赖设备调整大小:

  1. 效率低下 - 你将在运行时使用大量资源,而这些资源应该忙着做其他事情
  2. 不是预期的方式 - 你应该创建2个图像(视网膜和非视网膜)。如果您希望为iPad使用另一组图像,则应使用以下方法检查运行时正在运行的设备:
  3.   
        

    [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

      

    或将您的项目拆分为2个单独的目标,并将2组图像分别添加到正确的目标中。

答案 1 :(得分:1)

在您提出问题时回答您的问题:是的,您只能使用最高分辨率的图像,并使其符合每个设备当前所需的尺寸。您只需按照建议初始化带有命名资源的UIImage,然后将其分配给UIImageView,并在每种设备类型中使用适当的框架。

我建议这样做吗?不!

为什么呢?

  1. 命名约定(~ipad和@ 2x)使您可以轻松地为程序员提供每种分辨率的完美装配艺术品。
  2. 您或您的设计师分别完全控制艺术品的展示方式
  3. 它可以节省内存和CPU,因此可以节省一些电池电量。
  4. 当谈到非常详细或小巧的图形时,你可以考虑为较低分辨率创建稍微不同的图形,以便更好地适应当前的分辨率
  5. 因此,如果您只是想缩小高分辨率图像的尺寸,那么下载一些功能强大但价格便宜的东西,比如gimp并自己重新调整一次(而不是让手机一次又一次地执行),用poper名称保存它们并包括他们在界限。

答案 2 :(得分:0)

您需要做的就是在想要打电话时放硬币。

例如:

[UIImage imageNamed:@"coin"];

但是当将图像放在资源文件夹中时,将其命名为视网膜图像的coin@2x.png和ipad图像的coin~ipad.png

Xcode会相应地调用相应的图像。

答案 3 :(得分:0)

如果您只想拥有可以创建一次且可以在不同情况下使用的可调整大小的资源 - 请查看此UIImage+PDF类别,它可以帮助您使用PDF,它可以作为矢量格式缩放到任何尺寸没有质量损失。

最近添加了缓存,这也应该是一个帮助。