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,一经查实,立即删除!

相关文章

js的一些实现

响应回车键提交表单 //*******************************************************响应回车键登录****************************************************************** document.οnkeydοwnfunction(event){ var e event || window.event || arguments…

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

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

java遍历Set集合

在Java中使用Set,可以方便地将需要的类型,以集合类型保存在一个变量中.主要应用在显示列表. Set是一个不包含重复元素的collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。 import java.u…

Java switch语句

在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。 Java7可以使用String作为判断条件 public class Test { public void test(String str) { switch(str) { case "abc": …

find之exec和args

本来以为以前的差不多够用了。呵呵,看到很多高手用高技巧,心痒痒的觉得我自己还可以提升啊。。哈哈哈。 这个实践起来之后,,SED,AWK也得深化一下,,,SHELL和PYTHON,作运维的两样都不能…

Java 字符串分割陷阱

Java中关于字符串有一个split方法,这个方法可以实现分割字符串的作用; 但是如果使用一些正则表达式中出现的字符时Java编译器会报错, 如: String str "com.zhangsan.lisi.wangwu"; String[] strArray str.split(…

Linux 复习重点目录

Linux安全复习 一、Linux基本命令 1、文件管理命令 lvm 2、用户管理命令 3、网络管理命令 4、权限管理 普通权限和特殊权限 权限命令修改 5、服务命令 6、软件安装管理命令 yum安装 prm包安装 源码包安装 7、vim 、cat 、more、less文件处理 8、进程管理 top、ps、计划任务、守…

java Math 方法

Math.round(12.49)12; Math.round(12.50)13; Math.round(0.5)1; Math.round(0.49)0; Math.round(-0.51)-1; Math.round(-0.5)0; Math.floor(-0.50)-1.0; Math.floor(-0.001)-1.0; Math.floor(12.50)12.0; Math.floor(12.99)12.0;

LeetCode First Missing Positive

Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2. Your algorithm should run in O(n) time and uses constant space. 解题思路:数组总共有n个数,若都是连续的…

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

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

jquery扩张函数

//jquery扩展函数判断是否是手机号码 $.fn.isMobile function(){ alert("zhangsan"); var tmptxt$(this).val().trim(); var RegEx/^1[3|4|5|8][0-9]\d{8}$/;return RegEx.test(tmptxt); }; //jquery扩展函数判断是否是固定电话 $.fn.isTel function()…

用计算器计算“异或CRC”

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

Java正则表达式较验手机号、邮箱

import java.util.regex.Matcher; import java.util.regex.Pattern; public class PatternTest { /** * 验证邮箱地址是否正确 * param email * return */ public static boolean checkEmail(String email){ boolean flag false; try{ String check "^([a-z0…

ios数据库

1. ios数据库管理软件 ios使用的数据库是sqlite 管理软件有2种, 我只记得一种, 名字叫做 MesaSQLite 2. sqlite数据库 2.1.修改表结构 ①:更改字段类型长度 ALTER TABLE 表名 ALTER COLUMN 字段名 类型的长度--varchar(50) 例:把城市表的城市字段原来长度…

【discuz x3】源代码中的sql调用

【discuz x3】源代码中的sql调用 http://blog.csdn.net/yanhui_wei/article/details/17554655转载于:https://www.cnblogs.com/actorai/p/4168405.html

Mybatis的模糊查询

方法1&#xff1a;在其它地方对其进行相关处理&#xff0c;语句与正常的查询无异 在sqlMap中与正常的无异&#xff0c;如下所示&#xff1a; <select id"getNovaUserInfoByNickLike" resultMap"novaUserInfoMap"> <include refid"selectNo…

跨域(三)——JSONP

一、什么是JSONP? 百度百科&#xff1a;JSONP(JSON with Padding)是JSON的 一种“使用模式”&#xff0c;可用于解决主流浏览器的跨域数据访问的问题。由于同源策略&#xff0c;一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通&#xff0…

Spring DAO之JDBC

Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术&#xff0c; 如JDBC&#xff0c;Hibernate或者JDO等。它不仅可以让你方便地在这些持久化技术间切换&#xff0c; 而且让你在编码的时候不用考虑处理各种技术中特定的异常。为了便于以一种…

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

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

通过wifi调试Android程序

原文&#xff1a;http://www.cnblogs.com/sunzhenxing19860608/archive/2011/07/14/2106492.html 1.首先让android手机监听指定的端口&#xff1a;  这一步需要使用shell&#xff0c;因此手机上要有终端模拟器&#xff0c;不过网上很多&#xff0c;随便找个就行了&#xff0c…