美文网首页
android屏幕分辨率、密度、尺寸、px、dp等

android屏幕分辨率、密度、尺寸、px、dp等

作者: 我是不是忘了 | 来源:发表于2018-10-19 19:16 被阅读0次

    ****** ps看完之后就知道怎么和美工部的小姐姐解释为什么图片不要用px啦!  

    1.什么是屏幕尺寸、分辨率和像素密度?

    屏幕尺寸

    单位:英寸(inch)   1英寸 = 2.54厘米

    目前市场上屏幕尺寸以5.5英寸为主(Android 2018年),数据由【友盟】提供。

    推荐大家去看下,是一家数据统计网站,国内是比较知名的统计网站和工具。


    屏幕分辨率: 

    定义:横纵向上的像素点        ( 分辨率越高,显示的效果越好)

    单位:px   1px = 1像素点

     一般表达的方式,纵向像素 * 横向像素 = 1920 * 1080

    目前市场上手机屏幕分辨率 还是以1920*1080像素为主


    屏幕像素密度

    定义:指的是每英寸上的像素点        (密度越高,显示效果越好)

    单位:dpi 

     ****************像素密度与【屏幕尺寸】和【分辨率】有关******************

    下面举个“栗子”

    一步4.95英寸、屏幕分辨率是1920*1080的手机,求屏幕像素密度

    手机4.95英寸,指的是手机对角线的长度 因为AC=1920,BC=1080,所以AB≈2203

    所以像素密度 = 2203 / 4.95 ≈ 445


    为什么我们要用android开发的时候不用px做为单位?


    px(像素)

    构成图像的最小单位


    dp 、dip

    密度无关像素     【注意,dip和dpi不一样】

    如果在160dpi(像素密度为160),那么 1dip = 1px

            在240dpi(像素密度为240),那么 1.5dip = 1px        (后面会解释,别着急)

    举个“栗子”

    在2部手机中

    A手机 分辨率为 480*320,像素密度为 160DPI

    B手机 分辨率为 800*480,像素密度为 240DPI

    A手机 B手机

    如果我们图片要在A手机宽度铺满全屏显示的话,我们就得设置图片宽度为320px

    我们要B手机宽度铺满全屏显示,需要设置多少?得设置480px。

    那么问题来了,android手机那么多,分辨率并不是固定的(参考楼上分辨率数据),不像iPhone,屏幕的分辨率是固定的。我们想要图片在每部手机显示都是横向铺满的,设置px的话明显有问题。

    所以,我们开发的时候单位一般设置为dp、dip

    如果我们图片设置320dp,在480*320上,1dp=1px,所以图片是铺满的

    在800*480手机上,1px = 1.5dp,所以320dp = 320dp * 1.5 = 480dp,所以图片也是铺满的

    可能到这里小伙伴们头脑没转过来,为什么1px在不同分辨率手机上,等于的dp是不同的呢?

    因为手机的像素密度不同啊!

    上面说过dp、dip叫做密度无关像素,你可以这么理解,dp和dip存在的意义,是和像素密度没有关系的。我使用dp作为单位设置控件,不管你什么屏幕大小,多大的dpi,显示的效果始终保持一致。就是专门用于不同手机屏幕分辨率,我却能都适应。至于160dpi里1dp=1px,480dpi里1dp=1.5px,为什么这么设置呢?因为人家google就这么定义的。没必要深究

    px和dp的换算公式:px = dp * (dpi / 160)


    sp

    定义:根据字体首选项进行缩放

    sp绝大部分都是用来设置文字大小的大小.

    google开发指导手册上推荐我们设置12sp以上大小的单位,不要用12sp以下,以为用户可能看不清。推荐使用大小有12sp、14sp、18sp和22sp作为我们首选的字体大小。

    字体设置的时候    不能有   小数和奇数。因为字体放缩的时候可能对精度的丢失


    最后如果大家有空就看下这个android design  对大家还是有些帮助的

    http://www.apkbus.com/design/

    相关文章

      网友评论

          本文标题:android屏幕分辨率、密度、尺寸、px、dp等

          本文链接:https://www.haomeiwen.com/subject/afduzftx.html