我的Android进阶之旅------>(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
作者:马忠信,作者授权早读课发表,转载请联系作者。
原文链接:http://www.jianshu.com/p/c3387bcc4f6e#
互联网早读课:http://zaodula.com/archives/16413.html
今天我给大家来讲讲这几个咱们经常打交道的词到底啥意思,以及他们之间到底有什么关系。这篇文章是我花了一个下午从N多篇文章里提炼出的一个白话版,保证让你看得懂。
咱们从手机开始说起吧。先上一张图,给大家看看关于手机屏幕方面的一些参数。红框内的三个参数,大家一定都不陌生,我也不陌生。不过讲真的,就在不久前,我连手机的屏幕尺寸到底是怎么算出来的都不知道。下面我们开始慢慢讲。
屏幕(主屏)尺寸是什么,怎么算?
下面这张图是华为荣耀7的尺寸图,图上写的是5.2英寸。那么这个5.2英寸到底是怎么算出来的呢?在说这个问题之前,我们先进行一下单位的换算。我们平时是不用英寸这个单位的,我们用的是毫米,厘米,米这些单位。那么英寸和毫米,厘米之间怎样的换算关系呢?我也不知道,所以我百度了一下。
1英寸(inch)=2.54厘米(cm)
原来一英寸相当于我们的2.54厘米这么长。现在让我们回到5.2英寸到底是怎么算出来的这个问题。一开始呢,我觉得可能是手机屏幕的面积有这么大吧,后来我百度了英寸之后,才发现自己有多愚蠢。因为英寸是长度单位,面积的表示要用面积单位,英寸显然不可以表示面积。从这一点,就否认了我的想法。
其实,我们所说的这个5.2英寸是手机屏幕对角线的长度。
我这么一说,有点数学常识的人就知道手机的屏幕尺寸是怎么算的了吧。没错,就是那个勾股定理了,知道手机屏幕的长和宽,然后利用勾股定理,就可以算出斜边的长了。还有个更简单的方法,只要用尺子量一下它的对角线是多少厘米,然后再换算成英寸就搞定了。
分辨率又是什么鬼?
上面的图显示,华为荣耀7的分辨率是1920PX*1080PX。那么,这个分辨率又是怎么回事呢?可能大家注意了,1920和1080后面都跟了PX的字样,这个PX就是我们很熟悉的像素了,这个像素咱们后面讲,现在你只要明白,像素是分辨率的单位就好了。
在讲解分辨率之前,我们要明白一个概念。在我们手机上呈现的一条线,一个面,一张图像都是由最小的单位像素来表示的,你也可以简单理解为是由一个个小方块组成的。看看下面这张图你就明白了。
所以呢,分辨率1920px*1080px的意思就是,在这个华为荣耀7的5.2英寸屏幕上,在竖向的高度上有1920个像素块,在横向的宽度上有1080个像素块。
下面来讲讲啥是分辨率比?
你可能注意到了,手机的屏幕是个长方形,高是1920px,宽是1080px。你稍计算就会发现,这个高和宽的比例是16:9的。说到16:9这个比例,经常看视频的同学一定就不陌生了。手机屏幕有各种分辨率比,这个比你也可以看作是手机屏幕的尺寸比。根据百度百科显示,手机分辨率之所以表示成1920px*1080px这种形式,也是为了方便表示手机屏幕的大小。这里的大小,应该指的就是手机屏幕的尺寸吧。其实,告诉你一个手机的分辨率,你真的就能计算出手机屏幕的尺寸吗?那么,还差什么条件才能计算出手机屏幕的尺寸呢?
什么是屏幕像素密度?
屏幕像素密度,即每英寸屏幕所拥有的像素数,英文简称PPI。在读到这个每英寸屏幕时,我曾经深深的疑惑,这个每英寸是不是每平方英寸的简称呢?事实证明,我还是太年轻,这个英寸跟之前手机屏幕的尺寸一样,也是对角线的长度。所以,我们可以这么理解屏幕像素密度,即在一个对角线长度为1英寸的正方形内所拥有的像素数。说到这里,大家可能还是有些疑惑的,没事,接着看下面。
屏幕像素密度,分辨率,屏幕尺寸的关系是什么?
这三个专业名词之间,有着非常严谨的关系。为啥说严谨呢,因为这三者之间,有一个公式可以表示。
这个公式真是简单明了,把很多疑问都给我们解决了。我们还是拿华为荣耀7手机为例,我们知道它的尺寸为5.2英寸,分辨率为 1920px*1080px (1920px就是公式里的纵向,1080px就是公式里的横向了)。你不信的话就用公式算一下,最后得出的PPI,是不是就是424ppi。我算了一下,结果是423.6359942465958,懂得四舍五入的同学就知道424是个近似值了。
像素的大小是固定的吗?
我先这么说一句,像素是没有实际的物理尺寸的。为啥呢,按照惯例,举个例子。
上面的这两张图,第一张是苹果6手机的屏幕参数,第二张还是出镜率最高的华为荣耀7的屏幕参数。大家注意看,这两个手机的分辨率都是 1920px*1080px。但是,苹果手机的屏幕尺寸比华为荣耀7小了0.2英寸。又一个但是,苹果手机的屏幕像素密度(PPI)却比华为荣耀7高45个PPI,也就是每英寸像素个数多了45个。这说明了啥?说明了同样的一英寸的长度,苹果手机用469个ppi来显示,华为只用了424个ppi来显示。你能告诉我哪个手机的显示效果更加精细吗?同样是一英寸,同样都是像素,为啥苹果手机一英寸有469个像素,华为只有424个呢?我们知道,英寸是长度单位,它有固定的物理尺寸。那么问题就只能出在了像素身上。这说明,像素这个东西,在苹果手机上变小了。所以,像素这个东西,就像金箍,能变大能变小。
电脑屏幕可以调分辨率,难道是通过调整它的像素大小实现的?
你错啦,要是这么简单,我写这篇文章有个卵用?其实类,在同一个设备上,它的像素个数是固定的,这是厂商在出厂时就设置好了的。只有不同的设备之间,才有像素大小的区别。既然在同一个设备上,像素点数早就设定好了,那电脑上可以调整分辨率是怎么回事?我再怎么调,像素点数还是那么多啊。
人家系统给你推荐的是1366px*768px的分辨率,你知道意味着什么吗?没错,微软在这块屏幕上横向设置了768个像素,竖向设置了1366个像素。再怎么拉扯,这个数字是不会变了。那么,为啥我还能调整分辨率呢?我要是调整到800px*600px,按照定义,横向就是600个像素,竖向就是800个像素了啊。其实呢,你把分辨率调成800*600,系统就会分配给你800*600个有效像素个数,也就是真实的色彩块。其他的个数呢,就由系统自作主张,通过一系列运算给你一个模拟色彩块,填充成正好1366*768个色彩块。这些拿来充数的像素块,和真实的像素块放到一起。就好比一个正规军,里面掺了很多杂牌军一样,只能是队伍不好带了。
PPI大的手机显示效果就越精细吗?
要回答这个问题,就要先明白,一个像素到底包含了什么?一个像素其实就是一个色彩块,你不信的话,就去前面看看那张风雨雷电图。同样的一英寸,苹果手机能展示469个色彩,华为只能展示424个色彩,当然是苹果手机的显示效果更好了。也就是苹果6在出厂时,早就在屏幕上设置了同样个数更小的像素块,也就意味着可以显示更多的色彩。屏幕的清晰程度其实是分辨率和尺寸大小共同决定,用ppi指数衡量屏幕清晰程度更加准确。
屏幕尺寸固定,分辨率越高,PPI就越高吗?
废话,看公式啊。
分辨率固定,屏幕尺寸大了,PPI是不是就少了?
废话,看公式啊。还有,苹果6和荣耀7的例子还很鲜活的摆在这呢
PPI不变,屏幕尺寸变大,分辨率是不是也会变大?
废话,看公式啊。
鉴于篇幅太长,我本来还想把安卓手机上app的图标显示问题说一说,看来只能留到下一次了。
我的Android进阶之旅------>(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系?的更多相关文章
- (全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系? 产品经理马忠信关注 22015.08.30 13:59:20字数 2,660阅读 52,661 今天我给大家来讲讲这几个咱们经常打交道的词到 ...
- 我的Android进阶之旅------>关于android:layout_weight属性的详细解析
关于androidlayout_weight属性的详细解析 效果一 效果二 图3的布局代码 图4的布局代码 效果三 图7代码 图8代码 效果四 效果五 版权声明:本文为[欧阳鹏]原创文章,欢迎转载,转 ...
- 我的Android进阶之旅------> Android在TextView中显示图片方法
面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包括图像的文本信息).并简要说明实现方法. 答案:Android SDK支持例如以下显示富文本信息的方式. 1.使用T ...
- 我的Android进阶之旅------> Android在TextView中显示图片方法
面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用Tex ...
- 我的Android进阶之旅------>关于android:layout_weight属性的一个面试题
最近碰到一个面试题,按照下图,由Button和EditText组成的界面下厨布局代码,解决这题目需要使用android:layout_weight的知识. 首先分析上图所示的界面可以看成一下3个部分. ...
- [置顶] 我的Android进阶之旅------>介绍一款集录制与剪辑为一体的屏幕GIF 动画制作工具 GifCam
由于上一篇文章:我的Android进阶之旅------>Android之动画之Frame Animation实例 中展示的是Frame动画效果,但是之前我是将图片截取下来,不好说明确切的动画过程 ...
- 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)
一.背景 最近想把一些Android Demo的运行效果图获取下来,但是一直使用真机进行调试,在电脑上不好截取一段gif动画.而之前使用模拟器的时候可以使用 GifCam 工具进行屏幕动画截取.Gif ...
- 我的Android进阶之旅------>Android字符串资源中的单引號问题error: Apostrophe not preceded by 的解决的方法
刚刚在string字符串资源文件里,写了一个单引號.报错了,错误代码例如以下 error: Apostrophe not preceded by \ (in OuyangPeng's blog ) 资 ...
- 我的Android进阶之旅------>Android颜色值(#AARRGGBB)透明度百分比和十六进制对应关系以及计算方法
我的Android进阶之旅-->Android颜色值(RGB)所支持的四种常见形式 透明度百分比和十六进制对应关系表格 透明度 十六进制 100% FF 99% FC 98% FA 97% F7 ...
随机推荐
- webpack打包vue2.0项目时必现问题(转载)
原文地址:http://www.imooc.com/article/17868 [Vue warn]: You are using the runtime-only build of Vue wher ...
- @using (Html.BeginForm()) @using (Ajax.BeginForm(new AjaxOptions() { })) 区别
@using (Html.BeginForm()) 返回页面 也是页面 都是返回页面 只是 多了一个 data-ajax="true"
- CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\
解决方法: 1:设置 C:\windows\temp 文件夹安全权限 添加用户 NETWORK SERVICE 写入和读取权限 2:设置 C:\windows\temp 文件夹安全权限 添加用户 ...
- 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展添加检查订单功能,以便记录并检測输入的參数
这一章节我们讨论一下扩展添加检查订单功能,以便记录并检測输入的參数. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03 ...
- PHP图片识别成文字
http://apistore.baidu.com/apiworks/servicedetail/146.html 分类: php2011-- : 3576人阅读 评论() 收藏 举报 phpfunc ...
- Unix环境高级编程(一)
Unix基础知识1.引言2.Unix体系结构3.登陆4.文件和目录5.输入和输出6.程序和进程7.出错和处理8.用户标示9.信号10.时间值11.系统调用和库函数12.小结
- VS中去除SrouceControl的信息
如果在不连接TFS的情况下,编辑一个已经source control的solution,总是会有烦人的提示信息.如果你确定不再需要source control,可以这么干. Here is how t ...
- 从C#到Swift,Swift学习笔记
最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下 ...
- linux list
一篇介绍链表不错的文章: 1. 玩转C链表 2. openwrt使用list 3. 深入分析 Linux 内核链表 https://www.ibm.com/developerworks/cn/linu ...
- C++之类的静态成员变量和静态成员函数
static静态成员函数 在类中.static 除了声明静态成员变量,还能够声明静态成员函数. 普通成员函数能够訪问全部成员变量.而静态成员函数仅仅能訪问静态成员变量. 我们知道.当调用一个对象的成员 ...