iOS iphone屏幕分析(岂止而大)

在写本文前,我必须介绍几点内容:
第一点:屏幕上面显示的内容多少和屏幕的尺寸大小无关
第二点:屏幕上面显示的内容多少和分辨率完全无关
第三点:屏幕上面显示的内容多少和屏幕尺寸、屏幕分辨率、PPI等都是无关的

那到底什么才影响屏幕上面显示内容的多少呢?在苹果的iOS设备里面,那就是屏幕上Points(pt)点的数量,Point是一个绝对测量尺寸,一个Points可以表示多个像素,比如非视网膜上,1个Points就代表一个像素,但在视网膜屏幕上,1个Points就代表4个像素。也就是说3.5寸480*320分辨率的屏幕和3.5寸960*640视网膜分辨率的屏幕含的点数都是480*320,因此显示的内容一样多。统一使用Points对界面元素的大小进行描述,可以避免分辨率对编程思维的迷惑,在对普屏和Retina屏设备开发应用程序时,进行描述的界面元素的大小是一样的,系统发现是视网膜屏幕的设备时,就使用4倍像素渲染,因此就不会在不同设备上出现文字图标偏大、偏小、不清晰等影响阅读的现象发生。

↑ iOS 7系统(手机用)里面,一个图标使用60*60 Points,在普通屏幕上显示为60*60 像素,在视网膜上显示为120*120像素

在苹果的定义里面,1个3.5寸的iPhone所含的Points数量为320*480,4寸iPhone的Points数量为320*568,1个图标为60*60 points,在非视网膜屏幕上,1个图标显示为60*60 像素,在视网膜上则显示为120*120像素。如果在开发iPhone程序界面的时候,增加Points数量,那么显示的内容就会增多。

↑微软最新的Surface 3 Pro,使用原始分辨率,也就是默认的96DPI,虽然可以显示很多东西,但看不清字!

在Window 系统中,系统使用就是DPI(每英寸像素)来定义文字、图标等元素的。因此,在一定的尺寸下,屏幕分辨率越高,真实DPI 就会越高,所以显示的文字图标及内容越小(Window默认为96DPI)。最后我们就看到蚂蚁爬的字。所以苹果可将分辨率提升四倍,但显示文字、图标并没有缩小或看不,因为苹果用绝对值Points点来定义元素的,非视网膜屏1个Points就表示1个像素,视网膜上,1个Points就表示4个像素。当然屏幕上显示的内容并未增加。

我们来看下苹果为不同尺寸iPhone 所定义Points的数量。iPhone 1/3G/3GS/4/4S Points的数量为480*320,iPhone 5/5C/5S为568*320,iPhone 6为667*375,iPhone 6 Plus为736*414。开发者在开发应用程序时就是基于这个绝对值Points的数量,而不是基于960*640,1136*640,1344*750,1920*1080等屏幕分辨率。原因是不同分辨率对程序开发员会造成迷惑,采用绝对值Points点绝不会出现微软那样的文字缩小或放大的现象;二是我们电脑屏幕并不是视网膜级别的,开发者不好干活;三是把四个像素当一个像素操作是非常不精确的…

iPhone屏幕增加后,可视面积及屏幕显示内容的变化

根据以上表格,也就是说iPhone 5比前代3.5寸屏的iPhone可显示内容增加了18.3%,iPhone 6又比iPhone 5可显示内容增加了37.6%(面积也是增大37.6%),iPhone 6 Plus则比iPhone 5显示内容增加了67.6%(iPhone 6 Plus屏幕的面积比iPhone 5增加了89.1%,稍微解释下,苹果在6 Plus上是以3倍像素渲染的,所以很多朋友都预测iPhone 6的分辨率为2208*1242,因为1920/736 又不是整数,所以苹果先放大3倍像素渲染,然后缩放到1920*1080的屏幕上,因此增加的可视面积和屏幕显示内容不成正比)。到这里,我想小伙伴应该都明白了,苹果不仅仅是把屏幕放大了,而是真真实实让屏幕的显示内容变多了,这才是苹果口中的岂止而大!

↑不同尺寸的iPhone 为其开发应用程序所使用的原始分辨率

小伙伴们可能已经看过来新浪科技对iPhone 6的截图,我们把截图保存到你的4寸屏手机看看,是不是发现文字和图标变得好小,放大到和原系统一样大小时,图片装不下了。

↑iPhone 6的截屏在iPhone 5上显示时,发现文字和图标变得好小(苹果iPhone 6界面的Points点数量增加了38%)


↑再来对比下,小米手机4(5寸屏幕,分辨率1920*1080)主屏幕截图和步步高Xplay X3s(6寸大屏,分辨率为2560*1440)主屏截图在iPhone 5上显示(4寸超小屏,分辨率1136*640),图片不仅完全装下,而且每个字都很清晰、完全可读啊!

所以,苹果采用大屏,不仅增加了可视面积,而且真真切切增加了屏幕的可视内容,其应用程序也都是重新开发了,并没有简单粗暴将过去的应用程序放大到4.7寸或者5.5寸的屏幕上(新浪科技有提到,未优化的应用会发虚)。而Android采用大屏幕高分辨率,就是简单的放大文字、图标,拉伸界面而已,这样的结果就是,哪怕是6寸2560*1440的屏幕显示的内容多少也和4寸的iPhone 5没有区别。

小结下:
相似三角形的面积之比等于边长的平方比(屏幕尺寸用斜对角线表示),因此屏幕的尺寸越大,那么可视面积自然就越大,比如一块4.7寸的屏幕要比4寸的屏幕大38%,6寸要大125%...,但过去,我们并没在更大屏幕和更高分辨率的Android手机上看到比小屏幕手机如4寸iPhone 5上多多少内容,甚至基本上是完全相同,因为这些手机只是简单把文字图标等比放大而已,应用程序开发商也没有做任何优化,并不能让我们接收更多消息,提高工作效率,这也是市面上这些大屏幕的最大缺憾,真的只是大了而已。

而苹果说的是“比更大还更大”(现在换了“岂止而大”),是的,苹果的大屏就是如此,大了,屏幕上含的Points数量变多了,显示的内容增加了,这才是真的大了!显示内容增多可让我们接收更多的消息,可以让我们处理更多的文字图片,可以让我们更具效率,更加尽兴!这才是大屏的意义,所以这才是我们真正该买的大屏手机!

最后,我最喜欢库克每次在发布会上说的,“Remember,Only Apple Can Do This!” 记住,只有苹果才能做得到!只有苹果才敢让开发者为其大屏幕重新开发应用程序,真正不浪费半点屏幕空间。

转载于:https://www.cnblogs.com/wfwenchao/p/4122507.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【随笔】Win7下GVIM的安装与配置

针对各种语言的编辑器千千万万,最好的就是最适合自己的,这句话一点没错。 偶然间,需要在Windows上编写代码,MyEclipse等太大,完全没有必要,所以就想起来了vim这个神器。个子小,功能强&#xff0…

[java] 虚拟机(JVM)底层结构详解[转]

[java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本语法到SSH框架。这里面应该包含…

用计算器计算“异或CRC”

再计算器上输入以下数字,每输入一个数字,按一下“Xor” 转载于:https://www.cnblogs.com/YangBinChina/p/4164513.html

程序猿是如何解决SQLServer占CPU100%的

文章目录 遇到的问题使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件SQL2:获取当前的总报警记录数有哪些SQL语句会导致CPU过高?查看SQL的查询计划 选择top记录时,尽量为order子句的字段建立索引查看SQL语句CPU高的…

基于纤程(Fiber)实现C++异步编程库(一):原理及示例

纤程(Fiber)和协程(coroutine)是差不多的概念,也叫做用户级线程或者轻线程之类的。Windows系统提供了一组API用户创建和使用纤程,本文中的库就是基于这组API实现的,所以无法跨平台使用&#xff…

C语言 将整数写入内存指定的连续字节单元中

将整数数组写入0x40003000开始的连续10个字节内存单元中,注意unsigned char *指向一个字节,而int *指向1个字(4个字),但是可以把字中存储的整数放入字节单元中,只要不超过表示的范围,注意虽然un…

多项目开发下的dll文件管理

阅读目录:DS01:为什么要对生成的dll文件进行管理?DS02:首先介绍以下两个DOS命令DS03:第一种实现方法(xcopy)DS04:第二种实现方法(attrib)DS05:分享…

自然连接(NATURAL JOIN)

自然连接(NATURAL JOIN)是一种特殊的等价连接,它将表中具有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。图9.9给出了典型的自然连接示意图。 图9.9 自然连接 自然连接自动判断相同名称的列,而后形成匹配。…

自连接

9.3 表的连接类型 9.3.1 自连接 自连接是指表与其自身进行连接,这就需要用到前面介绍的表别名。下面通过一个具体实例来讲解自连接的应用。 实例5 自连接的使用方法 查询成绩中存在不及格课程的学生的姓名、所在系、所有的课程及成绩信息。如果采用前面介绍的…

LIKE运算符

6.5 使用LIKE进行模糊查询 当只知道部分字符串时,可使用LIKE运算符来查询数据库,找出与其相关的整个字符串。因此,当把关键字LIKE用在WHERE子句中时,可以比较两个字符串的部分匹配。当对字符串内容有些印象,但并不知…

AND运算符

6.2 组合查询条件 在前一章提到的WHERE子句进行查询时,WHERE子句后面的搜索条件只是单一的。实际上,可以通过布尔运算符AND和OR,将多个单独的搜索条件结合在一个WHERE子句中,形成一个复合的搜索条件。当对复合搜索条件求值时&a…

OR运算符

6.2.2 OR运算符 OR运算符表示“或”的关系。当可能有多个条件为True,但只要有一个为True就满足搜索要求时,可以使用OR运算符来组合搜索条件。OR在结合两个布尔表达式时,只要其中一个条件为True时,便传回True。OR运算符的真值表…

Java基础---网络编程

第一讲 概述 1、网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP。 通常用户操作的是…

AND、OR运算符的组合使用

6.2.3 AND、OR运算符的组合使用 在WHERE子句中,通过AND、OR运算符可以同时连接多个条件,当然AND、OR运算符也可以同时使用。但是当AND、OR运算符同时存在时,其优先级如何确定呢?与大多数语言一样,SQL语言认为AND运算…

IN运算符的使用

6.3 IN运算符 在查询中,有时只要满足多个条件中的一个条件即可,如查询地址在北京、上海或者重庆的学生信息,这时候可以使用IN运算符。 6.3.1 IN运算符的使用 IN运算符允许根据一行记录中,是否有一列包括在一系列值之中&#…

NOT运算符与运算符

6.4.2 NOT运算符与<>运算符 对于简单的条件查询&#xff0c;NOT运算符与<>运算符的功能几乎没有什么区别&#xff0c;那么NOT运算符的优势体现在哪里呢&#xff1f;答案是它可以与其他运算符组合使用&#xff0c;这一点是<>运算符所不能实现的。在6.4.1节已…

“%”通配符

6.5.2 “%”通配符 在SQL语言中最常用的通配符可能就是“%”了&#xff0c;它表示任意字符的匹配&#xff0c;且不计字符的多少。下面通过几个典型实例来说明“%”通配符的使用。 1&#xff0e;开头&#xff0f;结尾匹配 从COURSE表中查询所有以“计算机”开头的所有课程的…

Wireshark基本介绍和学习TCP三次握手

Wireshark基本介绍和学习TCP三次握手 原文&#xff1a;http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html wireshark介绍 wireshark的官方下载网站&#xff1a; http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件&#xff0c;功能十分强大。可…

“_”通配符

6.5.3 “_”通配符 “_”通配符的功能与“%”通配符基本相同&#xff0c;只是它只表示任意一个字符的匹配。当然&#xff0c;要表示两个字符的匹配&#xff0c;就需要使用两个“_”通配符&#xff0c;即写成“__”。 只有在用户确定所要查询的字符串的个数&#xff0c;只是不…

“[]”通配符

6.5.4 “[]”通配符 “[]”通配符用于指定一系列的字符&#xff0c;只要满足这些字符其中之一&#xff0c;且位置出现在“[]”通配符的位置的字符串就满足查询条件。 当然&#xff0c;各种通配符也可以组合使用。组合使用各种通配符时&#xff0c;一定要弄清其表示的匹配条…