zoukankan      html  css  js  c++  java
  • iOS开发中关于像素的几个概念

    DPI与PPI

    DPI(Dots Per Inch)是印刷行业中用来度量空间点密度用的,这个值是打印机每英寸可以喷的墨汁点数。

    计算机显示设备从打印机中借鉴了DPI的概念,由于计算机显示设备中的原子单位不是墨汁点而是像素,所以就创造了PPI(Pixels Per Inch),这个值是屏幕每英寸的像素数量,即像素密度(Screen density)。由于各种原因,目前PPI(主要是iOS)和DPI(比如在Android中)都会用在计算机显示设备的参数描述中,不过二者的意思是一样的,都是代表像素密度。

    HD与4K

    二者都是用来描述显示设备分辨率的标准。

    HD(High-Definition)的分辨率要高于1280x720px或者720p。

    Full HD的分辨率要高于1920x1080px,目前是主流电视以及高端手机(比如Galaxy SIV, HTC one, Sony Xperia Z, Nexus5等)采用的是这个分辨率。

    4K(也叫做Quad HD或者Ultra HD)的分辨率从3840x2160起步,主要是现在高端电视的分辨率;其还有一个更高的4096x2160的标准,主要用于电影放映机或者专业相机。

    Retina

      Retina display即视网膜屏幕,是苹果发布iPhone 4时候提出的,之所以叫做视网膜屏幕,是因为屏幕的PPI太高,人的视网膜无法分辨出屏幕上的像素点。iPhone 4/S的PPI为326,是iPhone 3G/S的两倍。由于屏幕在宽和高的像素数量提高了整整一倍,所以之前非Retina屏幕上的一个像素渲染的内容在Retina屏幕上会用4个像素去渲染:1x1px(non Retina) = 2x2px(Retina),这样元素的内容就会变得精细。注意,Retina display是苹果注册的命名方式,其他厂商只能使用HI-DPI或者其他的命名方式,不过意思都是一样的,就是屏幕的PPI非常高。

    DP/PT/SP

      随着移动设备屏幕PPI的不断提高,对于开发者来说以前用物理像素(Physical Pixel)来度量显示元素的方法已经不奏效了。为了解决这个问题,两大平台都提出了抽象像素的概念:

    iOS叫做PT(Point,显示点)。

    Android中叫做DP/DiP(Device independent Pixel,设备无关像素)。

      举个例子,44x44pt的元素在非Retina屏幕中等于44x44px,在Retina屏幕中等于88x88px(变为4倍)。

    SP(Scale-independent pixel)是缩放无关的像素,与DP和PT一样都是抽象像素,只不过用于描述字体的大小。

    iOS中处理PPI

      iOS中处理不同PPI显示的方法很简单:首先规定在多高的PPI下1DP等于1px,并以这个PPI作为基准(1x multiplier),如果显示设备的PPI是基准PPI的2倍,那么1DP等于2px(2x multiplier),其实就是简单的小学乘法。在iPhone系列中,3G/S为1x multiplier,除6 Plus为3x multiplier外,其他为2x multiplier。在iOS中,同一个应用在非Retina屏幕和Retina屏幕显示的资源是不同的,其规则是: name.png为非Retina资源,name@2x.png为Retina资源,所以对于设计人员来说,在你设计的时候需要考虑到Retina屏幕和非Retina屏幕。

    (以上内容整理自:http://weizhifeng.net/you-should-know-about-dpi.html)

  • 相关阅读:
    Oracle根据表的大小排序SQL语句
    设置新时间校正服务器NTP SERVER
    ORACLE设置密码无过期
    查看端口是否开通的命令行语句
    ORACLE基本操作备忘
    ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]
    ORACLE数据库在导入导出时序列不一致的问题
    第一章:走近java-深入理解java虚拟机-读书总结
    智能指针的实现
    随机数的生成:给定1-n的随机数生成器randn(),生成1-m的随机数
  • 原文地址:https://www.cnblogs.com/yif1991/p/5236170.html
Copyright © 2011-2022 走看看