• 一直困扰设计师多年的Android 单位 dp


    轻松理解Android开发单位DP ,让设计与开发高度匹配,整合了网上各大资料汇总一个通俗易懂的。

    一直困扰设计师多年的Android 单位 dp

    设计这么多年了,相信很多设计师,一直被DP搞得晕头转向的,因为我们设计常用单位是PX ,设计的时候我们用这个单位,但是开发人员则用dp,如何保证设计的产品效果图,文字能让开发人员,准确还原,这里我们就不得不提sp

    Android 为什么引入dp?

    是因为这个世界上存在着很多不同屏幕密度的手机,屏幕密度是什么?就是ppi,就是单位长度里的像素数量。

      想象一下,如果这些手机的尺寸一样,屏幕密度相差很大,那么是不是说一个手机水平方向上像素很少,另一个手机水平方向上像素很多?那我们画同样pix数量的时候,它显示的长度不就会不一样了?

      比如下图中的两个手机,同时设置2px长度的Button,在屏幕密度较高的手机里就会显示的比较小。

      而同时设置的2dp长度的Button,在两个手机上显示的大小是一样的。

    Android常用单位:

    1.屏幕尺寸in(英寸):指实际的物理尺寸,为屏幕对角线的测量。一般讲的大小单位都是英寸,比如iPhone5S的屏幕尺寸是4英寸。

    2.像素(pixel):屏幕上的点,基本原色素及其灰度的基本编码。

    3.分辨率(Resolution):是指屏幕上垂直方向和水平方向上的像素个数。(比如iPhone5S的分辨率是1136*640)

    4.dpi:dot per inch,就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。

    5. dp=dip : device independent pixels(设备独立像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

     
    6. sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时,1sp=1px。

    对ppi 的理解:

    ppi= Pixels per inch,每英寸上的像素数数目,即 "像素密度“

    屏幕尺寸in(英寸):指实际的物理尺寸,为屏幕对角线的测量。

    而ppi的运算方式是:

    PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数

    举个简单的列子,iphone5的ppi是多少?ppi=√(1136px²+ 640px²)/4 in=326ppi(视网膜Retina屏)

    为解决Android设备碎片化,引入一个概念dp,一种基于屏幕密度的抽象单位。

     Android把屏幕密度分为了四个广义的大小:

    低(120ppi)、中(160ppi)、高(240ppi)和超高(320ppi)

     dp是(设备独立像素)不同设备有不同的显示效果,这个和设备硬件有关是虚拟像素,在不同的像素密度的设备上会自动适配。

    在每英寸160ppi的显示器上,1dp= 1px。

    关于dp与px 单位换算:

    dp=dip:device independent pixels(设备独立像素)不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。

    dp是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp=1px

    dp和px的换算公式 :dp*ppi/160 =px

    比如,在一个240ppi的屏幕里,比如1dp x 240/160 =1.5px。 即 1dp=1.5px,

    mdpi(160ppi)  1dp = 1px ;  hdpi  (240ppi)1dp=1.5px;

    Xhdpi(320ppi )1dp=2px;    xxhdpi(480ppi )1dp=3px;

    对于设计人员而已,我们要把dp转化为px,  只是需要利用公式:

    px=dp*ppi/160

    mdpi: 1.0 (baseline)    1dp=px

    hdpi: 1.5              1dp=1.5px

    xhdpi: 2.0              1dp=2px

    xxhdpi3.0                     1dp=3px

    把dp 转化为px  公式为:

    dp乘以每个密度下面的系数比值

    常见手机分辨率:

    4:3

    VGA       640*180(video graphics array)

    QVGA    320*240(Quarter VGA)

    HVGA    480*320(half-size VGA)

    SVGA    800*600(Supper VGA)

    5:3

    WVGA  800*480(WideVGA)

     

    16:9

    FWVGA  854*480(full wide VGA)

    HD     1920*1080(high definition)

    QHD      960*540

    720p     1280*720 标清

    1080P     1920*1080  超清

    Android 字体单位:

    sp:Scale-independentpixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时,1sp=1px。

    Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

    默认系统字体   英文:Roboto;中文:DroidSans Fallback  与微软雅黑很像

    Android L 常用字体边距规格对照表:

    AndroidL 常用字体边距规格对照表:参考资料:

    参考资料:

    http://www.cnblogs.com/greatverve/archive/2011/12/28/android-dip-dp-sp-pt-px.html

    http://zhuanlan.zhihu.com/zhezhexiong/19565895 

    http://www.360doc.com/content/07/0111/10/11821_326037.shtml

  • 相关阅读:
    前端开发中的设计模式
    前端常见的攻击
    前端笔试题
    JavaScript中的回调地狱及解决方法
    JavaScript中的编码解码
    JavaScript中操作节点
    前端常见面试题
    Vue的使用总结(2)
    JavaScript中的事件
    Vue的使用总结(1)
  • 原文地址:https://www.cnblogs.com/ldq2016/p/9035632.html
Copyright © 2020-2023  润新知