point vs pixel @1x,@2x,@3x
2016-01-21 13:46
239 查看
在代码中,我们使用point作为长度的单位,point是一个虚拟的尺寸,是实际展示在屏幕上的物理长度的一个换算。
如上图,不同设备的point多少不一样。换算成单位长度的point如下表:
iPhone 4 (320×480 points) = 164.8 points-per-inch
iPhone 5 (320×568 points) = 163.0 points-per-inch
iPhone 6 (375×667 points) = 162.8 points-per-inch
iPhone 6 Plus (414×736 points) = 153.5 points-per-inch
iPad Mini (768×1024 points) = 162.0 points-per-inch
iPad (768×1024 points) = 132.0 points-per-inch
4,5,6的points-per-inch 基本一样,所以实际展示在屏幕上的尺寸也一样;在6+上, points-per-inch = 153.5,所以6+上实际展示的尺寸大长5%左右。
对于同一段代码view.width = 100;
在4,5,6三个设备上展示出来的物理长度比如是3cm,在6+上展示的长度是3*1.05cm
在4以下:1point 对应 1pixel
4,5,6:1point 对应 2pixel
6+:1point对应3pixel(在iOS系统计算时),实际上1point对应2.6pixel(6+会做一个downsampling处理,参考:http://www.paintcodeapp.com/news/iphone-6-screens-demystified)
4以下,使用@1x图,对于100px * 100px的图,系统会把image的size置为100pt * 100pt
4,5,6,使用@2x图,对于100px * 100px的图,系统会把image的size置为50pt * 50pt
6+,使用@3x图,对于100px * 100px的图,系统会把image的size置为33pt * 33pt
所以,如果在4,5,6上,imageView的size若置为50pt * 50pt,使用图片为100px * 100px ,且contentMode不设置为自动拉伸压缩的情况下,如果图片后缀为@2x,则图片显示正常;如果忘记设置,默认为@1x,图片的size会成为100pt * 100pt,展示出来图片尺寸就加倍了;如果设置为@3x,则图片展示会缩小为2/3
相关文章推荐
- 你所不知道的15个Axure使用技巧
- JAVA设计模式之:建造者模式
- 安卓学习:适配器之BaseAdapter
- webView && javascript(JS)的交互
- Java类与对象===Java包装类、拆箱和装箱详解
- mysql嵌套事务的问题
- 促销体系之会员价+代理商
- OpenCV 2.4+ C++ 人脸识别
- 学习C++(1)之类的拷贝构造
- handlebar的一些用法——个人使用总结
- Exchange 2013强制中断POP3及IMAP4故障排错
- JavaScript方法执行过程
- 什么是尾递归(python引例)
- NodeJS - Express4.0错误:Cannot read property 'Store' of undefined
- WinCE5.0 内存管理以及优化方案
- 网络加密解密原理(二) RSA加密解密及数字签名Java实现
- 促销体系之商品预售
- tcp-hybla
- SSH中调用另一action的方法(chain,redirect)
- jQuery Ajax 实例 全解析