文档章节

兼容 iOS retina

jackyyang
 jackyyang
发布于 2012/07/27 11:40
字数 483
阅读 197
收藏 5

1、 首先明确:
iPhone 3G/3GS 屏幕像素分辨率是   320×480 ;
iPhone4、iPod Touch4 屏幕像素分辨率 640×960。

2、为了兼容 iOS 4.0 之前的程序也能在 iOS 4 上运行,苹果设计了一个逻辑分辨率单位point ,在 iPhone3 上 1个 Point 相当于 1个pixel ; 而 iPhone4 上1个 point 就相当于4个 pixel;因此所有的iPhone、iPod Touch 设备的 Point 分辨率都是 320×480 ,也就是逻辑分辨率都一致,保证了App不需要修改也能正常的在高像素分辨率上运行,只是原来App中的图片会被拉升后显示,影响美观,没有发挥retina的优势。

3、iOS App设计和开发人员要做什么?

1)App 的图标设计,发布到Store的App必须同时提供高清Size的App Icon(在原来基础上都要对应提供一份高清版本),参考Apple官方文档

2) 代码中引用的静态UI 图片素材,也是提供两份,一份低像素分辨率,一份高分辨率使用。
比如:原来App素材包有个 demo.png ,那么 App bundle中就必须再提供一个两倍size的 demo.png , 并且文件命名为 demo@2x.png 后添加到项目工程中;

在代码中仍然这样写 [UIImage imageNamed:@"demo.png"] 即可, 无需修改代码,iOS系统可以自动对应不同屏幕取不同size的图像文件。

3) 如果App运行中从网络异步获取图片进行显示,或游戏App中动态生成图片后显示,需加上代码判断不同屏幕设备来获取/生成不同size图片。

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){
//retina 或 ipad上启用2x显示iPhoneApp
//获取高清size图片
}
else {
//获取低清size图片
}

更多资料参考:
http://globalmoxie.com/blog/designing-for-iphone4-retina-display.shtml

http://stackoverflow.com/questions/3294100/how-to-differentiate-between-iphone4-and-iphone-3

http://bjango.com/articles/designingforretina/
http://bjango.com/articles/designingforretina2/

© 著作权归作者所有

共有 人打赏支持
jackyyang
粉丝 22
博文 42
码字总数 18506
作品 0
珠海
私信 提问
[iOS开发]图标及载入图尺寸

比例 2x = @2x Retina 4 = 568h@2x Retina HD 4.7 = @2x Retina HD 5.5 = @3x iOS图标 iOS载入图 Apple -- iOS Human Interface Guidelines...

Haffe
2014/11/03
0
0
设计 iOS 应用时需要知道的 5 件事

根据我们制作优秀的 iOS 应用的经验,我们认为设计师应该在心里的牢记适用于 iOS 的 5 件事。虽然本文关注的重点只在 iOS 应用,但大部分的意见也适用于其他移动平台。 1. 了解您的媒体 这似...

oschina
2013/03/21
3.8K
7
iOS Universal Application 支持IPHONE和IPAD的应用设置

//实现 320180 640960 7681024 15362048 四种分辨率的图片加载 //在AppDelegate中把起用高清的代码注释去掉 //if( ! [director enableRetinaDisplay:YES] ) //CCLOG(@"Retina Display Not su......

慎道
2012/03/20
0
1
20 个免费的 iPhone 应用设计 PSD 资源

有人说小编我偷懒,其实真不是。真没什么好说的。关键字:iPhone PSD,免费! Fresh IPhone UI Kit 20 iPhone Angles iPhone 5 Grid PSD iPhone Wood Bookcase UI PSD Leather IOS Menubar P...

oschina
2014/04/16
6.8K
11
CloudBox说明

1. 下载连结,下载后解压缩可直接开启 http://blog.csdn.net/cloudhsu/article/details/7443266 2. 此为xcode3模版, xcode可直接开启执行, xcode3与xcode4皆可直接执行 3. 若要使用此模版, 请...

长平狐
2012/10/08
77
0

没有更多内容

加载失败,请刷新页面

加载更多

从 0 开始手写一个 Mybatis 框架,三步搞定!

阅读本文大概需要 3 分钟。 MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码。 本文完成的Mybatis功能比较简单,代码还有许...

别打我会飞
34分钟前
3
0
关于幂等性的解决方案

所谓幂等性,简单得理解可以认为多次相同参数的调用返回同样的结果 查询类 纯天然支持幂等性,多次调用均返回同样的结果。 更新类 幂等性的控制主要是在服务提供方进行控制,当然服务调用方也...

写bug的攻城狮
40分钟前
2
0
使用jsoup来写小说整理器

现在的小说越来越难找了,一般都是在线的,费流量且收藏起来麻烦。 所以我觉得写一个整理器,从某些小说网站获取小说内容并保存为txt文件。 我们使用jsoup 它的maven描述为: <dependency> ...

废柴大叔
54分钟前
4
0
Nginx支持的负载均衡调度算法方式

weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式...

anlve
57分钟前
2
0
Nmap之数据库渗透

脚本 解释 mysql-database MySQL列举数据库 mysql-variables 列举MySQL变量 mysql-empty-password 检查MySQL空密码 mysql-brute 审计MySQL密码 mysql-audit 审计MySQL安全配置 oracle-brute......

Frost729
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部