当前位置: 首页 > news >正文

让你的应用支持新iPad的Retina显示屏

一、应用图片
标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源。就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为iPad应用中的图片制作对应的高分版本。我知道不少开发者很有预见性的早在iOS 5.0 SDK上就完成了这一步升级。可是我还是要强调一点,那就是之前 Michael Jurewitz (@Jury)在推上提到过的:

— 如果想让你的高分图片显示在新iPad上,你必须用Xcode 4.3.1 连同iOS 5.1 SDK编译!

二、应用图标

接下来肯定就是为应用主图标制作高分版本了,因为低分版的图标在新iPad桌面上看起来会惨不忍睹。为了支持更多的iOS设备、更高分辨率的屏幕,iOS开发者需要为自己的应用准备各种尺寸的主程序图标文件,而且这个文件列表貌似会越来越长越来越长……(译者:叹气~)。详情请参考最新的苹果开发者文档 iOS App Programming Guide 和 iOS Human Interface Guidelines 。从官方文档中,我找出来针对新iPad的Retina显示屏我们需要准备的东西:

iPad主应用图标 (144×144像素):之前用在iPad 1、2代上的是72×72 像素。现在我们需要额外的@2x版本(144×144 像素)。

iPad搜索结果图标 (100×100像素):这个图标出现在系统搜索结果中(译者注:还有在系统设置中,如果应用支持的话)。之前版本用的是50×50像素,现在@2x版本需要100×100像素。

文件命名和Info.plist文件
根据你的应用需要支持的iOS最低版本不同,你可能需要在Info.plist文件中指定图标文件名,或者是按照苹果的规范命名不同版本的主图标文件。最悲催的情况恐怕就是,你搞的是一个即可跑在iPhone也可跑在iPad上的通用应用(universal app),并且你打算支持iOS 3.1.x甚至更早的版本(译者:其实现在iOS 4.0及以上版本的设备普及率已经很高了,完全没有必要支持古董级的版本,咱又不是Android)。因为iOS 3.2之前是不支持在Info.plist文件里面指定图标文件的,所以你得使用苹果指定的规范去命名图标文件。一个完整的列表差不多就是下面这个样子:
● Icon.png – 57×57 iPhone应用图标
● Icon@2x.png – 114×114 iPhone Retina显示屏应用图标
● Icon-72.png – 72×72 iPad应用图标
● Icon-72@2x.png  - 144×144 iPad Retina显示屏应用图标
● Icon-Small.png – 29×29 iPhone 系统设置和搜索结果图标
● Icon-Small@2x.png – 58×58 iPhone Retina显示屏 系统设置和搜索结果图标
● Icon-Small-50.png – 50×50 iPad 系统设置和搜索结果图标
● Icon-Small-50@2x.png – 100×100 iPad Retina显示屏 系统设置和搜索结果图标
 
如果你的应用仅兼容iOS 3.2及之后的版本,那么你可以在Info.plist文件里面指定图标文件,你不用遵守上面的命名规范,当然你非要那么命名也没有问题(译者:为了便于和美工沟通和日后项目资源的管理,还是建议遵循这套规范)。在iOS 3.2中,苹果在Info.plist文件中引入了CFBundleIconFiles键,在此其中你可以直接指定应用图标的各种版本。如果你忽略了.png的后缀名,那么你也可以忽略高分版本图片的@2x部分,系统会自动匹配。

苹果在iOS 5.0中为了支持报刊杂志(Newsstand)功能,再次引入了一个新的键 CFBundleIcons,这让事情变得更加复杂起来(译者:再次叹气~)。这个键下含有子键CFBundlePrimaryIcon,里面的CFBundleIconFiles子键保存着在此之前保存在Info.plist根节点CFBundleIconFiles键里面的内容。如果你的应用仅支持iOS 5.0及之后版本,那么用一个 CFBundleIcons键就可以,否则的话你还需要同时保留CFBundleIconFiles键和相关内容。

(译者:这里原文讲述稍微有点偏差,未提到CFBundlePrimaryIcon,而且比较混乱,令人费解。其实在Xcode里面以默认方式打开Info.plist看到的会是Icon Files和Icon Files(iOS 5)两组键)

总之,为了做到向后兼容,这个环节会给开发者带来一点小混乱,相当容易犯错。所以,建议开发者针对不同的设备、屏幕组合多做测试。
 
三、应用商店截屏图片

苹果近期对应用提交做出了规则调整,如若是iPhone、iPod touch应用,必须提交Retina显示屏高分版本的应用屏幕截图。具体图片尺寸要求如下 (前面的尺寸是含系统状态栏情况下的截图):
- 横屏: 960×640 或 960×600
- 竖屏: 640×960 或 640×920

目前苹果尚未对iPad应用提交也做出类似要求,但是为了让你的应用截图在新iPad上看起来呼之欲出,现在是时候考虑使用高分版本截图了。对应的截图尺寸如下 (前面的尺寸是含有状态栏情况下的截图):
- 横屏: 2048×1536 或 2048×1496像素
- 竖屏: 1536×2048 或 1536×2008像素

译者注:原文评论中有人做了补充的,运行时的载入画面,针对新iPad屏幕也需要准备,文件命名和尺寸要求:
- 横屏: Default-Landscape@2x~ipad.png (2048×1496像素)
- 竖屏: Default-Portrait@2x~ipad.png (1536×2008像素)

相关文章:

  • Callable,Runnable比较及用法
  • 【原】IOS中KVO模式的解析与应用
  • Lucene的多域查询、结果中查询、查询结果分页、高亮查询结果和结果评分
  • 工具篇:产品经理常用的工具
  • ASP.Net上传中文文件乱码
  • 配置管理小报091119: waiting for abc's lock in /db1/cp/src
  • SVN服务器搭建和使用
  • 怎样判断自己是否在平庸者之列?
  • 通向云之路:云计算的主要优势
  • hibernate动态创建表, 动态加载映射
  • java多线程synchronized,wait,notify的大致用法
  • linux知识汇总
  • 自己做的笔试题
  • 风斗
  • localhost:3000显示rails首页的波折
  • @angular/forms 源码解析之双向绑定
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Android 架构优化~MVP 架构改造
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Brief introduction of how to 'Call, Apply and Bind'
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES6核心特性
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Fastjson的基本使用方法大全
  • JAVA_NIO系列——Channel和Buffer详解
  • JAVA之继承和多态
  • MQ框架的比较
  • mysql中InnoDB引擎中页的概念
  • OSS Web直传 (文件图片)
  • Python_OOP
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • V4L2视频输入框架概述
  • 阿里研究院入选中国企业智库系统影响力榜
  • 和 || 运算
  • 每天一个设计模式之命令模式
  • 面试遇到的一些题
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 项目实战-Api的解决方案
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 国内开源镜像站点
  • #100天计划# 2013年9月29日
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (04)odoo视图操作
  • (11)MSP430F5529 定时器B
  • (13)Hive调优——动态分区导致的小文件问题
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)kafka实战——kafka源码编译启动
  • (转)ABI是什么