• Android——dpi相关知识总结


    1.术语和概念

    术语

    说明

    备注

    Screen size(屏幕尺寸)

    指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸......

    nexus4手机是4.7英寸

    Aspect Ratio(宽高比率)

    指的是实际的物理尺寸宽高比率,分为long和nolong

    nexus4是16:10,属于long

    Resolution(分辨率)

    和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数

    nexus4是1280*768

    DPI(dot per inch)

    每英寸像素数,如120dpi,160dpi等,假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160

    可以反映屏幕的清晰度,用于缩放UI的

    Density(密度)

    屏幕里像素值浓度,resolution/Screen size可以反映出手机密度,

    Density-independent pixel (dip)

    指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)

    Pixel Per Inch(ppi)

    在图像中每英寸所表达的像素数目。从输出设备(如打印机)的角度来说,图像的分辨率越高,所打印出来的图像也就越细致与精密。打印分 辨率使用的单位是DPI(Dot Per Inch),意思是:每英寸所表达的打印点数。



    注:
    DPI用来表示输出设备的输出精度,如打印机,显示器,DPI表示的是 像点/英寸(每英寸长度上有多少个打印点或像点)PPI用来表示输入设备的输入精度,如扫描仪,数码相机,PPI表示的是 像素/英寸(每英寸长度上有多少个像素)

    DPI值计算

    比如:计算WVGA800*480)分辨率,3.7英寸的密度DPI,Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=252

    px、dp、dip、dpi、sp 等到底有什么联系区别?产生的根源和设计时的影响如何?是否屏幕密度的决定原因?

    px(像素)是我们UI设计师在PS里使用的(不解释),同时也是手机屏幕上所显示的(也不解释)
    dp是开发写layout的时候使用的尺寸单位,sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。

    Android支持四种不同的dpi模式:ldpi mdpi hdpi xhdpi
    一般地,手机分辨率与所运行的dpi模式是匹配的,例如hvga(320x480像素)的手机屏幕一般在3.5英寸左右,运行在mdpi模式下(也有例外,稍后解释)(这个是ROM控制的,app不能改变)。当运行在mdpi下时,1dp=1px:也就是说设计师在PS里定义一个item高48px,开发就会定义该item高48dp;Photoshop中14px大的字体,开发会定义为14sp。

    对于一部wvga(480x800)手机(G7、N1、NS),一般是运行在hdpi模式下。当运行在hdpi模式下时,1dp=1.5px:也就是说设计师在PS里定义一个item高72px,开发就会定义该item高48dp;Photoshop中21px大的字体,开发会定义为14sp。

    所以,当你的app需要适配多个dpi模式的时候(例如同时适配mdpi与hdpi),若你在wvga下做设计,你需要将你的各数值都为3的倍数,并在切图标注时将所有的数字除以3乘以2换算成dp,这样开发的同一套layout就能用在两个不同的dpi模式下,而不是写两套layout。

    mdpi与hdpi是2:3的关系
    mdpi与xhdpi是1:2的关系
    ldpi与mdpi是3:4的关系

    Galaxy Nexus 是720P屏幕,就是运行在xhdpi下的。

    可以想见为什么iOS的开发者升级到 Retina Display 是多么的无痛

    参考链接:

    DPI与PPI: http://blog.csdn.net/wuyao721/article/details/5286753

    px、dp、dip、dpi、sp说明:http://www.zhihu.com/question/19625584

     

  • 相关阅读:
    CF 120F Spider 树的直径 简单题
    POJ 1155 TELE 背包型树形DP 经典题
    CF 219D Choosing Capital for Treeland 树形DP 好题
    POJ 3162 Walking Race 树形DP+线段树
    HDU 2196 Computer 树形DP 经典题
    __str__()、__repr__()和__format__()
    item系列方法
    getattribute
    isinstance和issubclass
    继承方式完成包装
  • 原文地址:https://www.cnblogs.com/gis-luq/p/3468770.html
Copyright © 2020-2023  润新知