• 屏幕适配基础——了解:ppi、dpi、px、sp、dp


    做android开发绕不开的几个名词:ppi、dpi、px、sp、dp。那么它们的定义、区别和联系都是什么呢?这篇博客系统的做一个概述和总结。

    1、基本概念

    • px:pixel,像素,电子屏幕上组成一幅图画或照片的最基本单元
    • pt: point,点,印刷行业常用单位,等于1/72英寸
    • ppi: pixel per inch,每英寸像素数,该值越高,则屏幕越细腻
    • dpi: dot per inch,每英寸多少点,该值越高,则图片越细腻
    • dp: dip,Density-independent pixel, 是安卓开发用的长度单位,1dp表示在屏幕像素点密度为160ppi时1px长度
    • sp: scale-independent pixel,安卓开发用的字体大小单位。

    从上面的介绍可以看出,px、pt是一种类型,分别用于屏幕和印刷,表示各自的最基本单元;ppi、dpi是一种类型,分别用于屏幕和印刷,表示各自的像素、点密度;而dp、px分别表示长度单位和字体大小,他们的共同点都是,随着屏幕大小和分辨率而改变。

    2、相互关系

    2.1 pt和px

    1pt=(dpi/72)px

    上面的公式的意义就是,1pt等于1/72英寸。

    2.2 ppi和dpi

    dpi最初用于衡量打印物上每英寸的点数密度。DPI值越小图片越不精细。当DPI的概念用在计算机屏幕上时,就应称之为ppi。同理: PPI就是计算机屏幕上每英寸可以显示的像素点的数量。因此,在电子屏幕显示中提到的ppi和dpi是一样的。所以:

    1ppi=1dpi

    2.3 计算ppi

    ppi是指屏幕像素密度,计算方式如下:

    ppi=屏幕对角线像素点数/屏幕对角线长度=( √ (屏幕横向像素点^2 + 屏幕纵向像素点^2)/对角线长度)

    举例说明:若一款手机屏幕分辨率为720px*1280px,4.3英寸。则点密度为 √ (720^2 +1280^2) /4.3 = 342ppi。

    2.4 px和dp

    dp为安卓开发时的长度单位,根据不同的屏幕分辨率,与px有不同的对应关系。

    dp的大小的定义为:

    在160ppi时:1px=1dp

    所以,如果ppi为240的时候:1dp=1.5px,依次类推,而px和dp的计算公式为:

    1dp=(ppi/160)px

    同时结合android资源文件夹下,常见的几个名词:ldpi、mdpi、hdpi、xhdpi、xxhdpi,其对应关系如下:

    密度 ldpi mdpi hdpi xhdpi xxhdpi
    ppi 120 160 240 320 480
    分辨率 240*320 320*480 480*800 720*1280 1080*1920
    比例 0.75 1 1.5 2 3

    同时由于ppi的值除了和像素总数有关,还与屏幕大小有关,所以计算的ppi不是严格的等于上表中的值,多数只是取近似值

    2.5 dp和sp

    dp和sp类似,都会随着屏幕大小和分辨率变化而改变,不同的是,在android中,dp表示长度单位,sp表示字体大小,在多数情况下

    1dp=1sp

    但是在文字尺寸是“大”或“超大”时,1sp>1dp。

    (Tip:在设计中,多数以xhdpi为模板,此时1dp=2px)


    不是闷骚的程序员算不上程序员。我的微信公众号“那点鼻事”,在这里周一到周五每天一篇文章,与技术无关,只哈牛逼。

  • 相关阅读:
    澳门两日游之续一
    记澳门两日游0516
    [原创]北大ACM POJ 1050题解
    [原创]百度之星低频词过滤题解
    [原创]百度之星题解之重叠区间大小
    澳门两日游之续三
    澳门两日游之续二
    [原创]LZW网页判重的题解
    [原创]北大ACM POJ 1032题解
    创建产品列表控件时触发自定义DataUpated事件时,设置MultiView.ActiveViewIndex无效
  • 原文地址:https://www.cnblogs.com/YaoJianXun/p/6491959.html
Copyright © 2020-2023  润新知