Android屏幕适配问题

来源:互联网 发布:荆州网络电视垄上行 编辑:程序博客网 时间:2024/06/07 20:02

1.各个尺寸单位的含义


  • px(pixels)像素:手机屏幕上最小的显示单位
  • in(英寸):屏幕的物理尺寸, 每英寸等于2.54厘米。
  • pt(point):标准长度单位, 1pt=1/72英寸,用于印刷业,UI设计师会用,iOS字体单位,Android开发不涉及。
  • dpi(dots per inch) :
    1.打印分辨率,每英寸所能打印的点数,即打印精度
    2.每英寸点数,即每英寸包含像素个数。 (这个含义其实是被广大的科技公司所应用,一般来说不应该使用dpi去定义屏幕的分辨率等问题,因为你会发现这个概念跟ppi的概念相同,但是科技大佬们的误用也使行业内很多人跟着用了,Android中的dpi其实就是ppi)
  • ppi(pixels per inch):每英寸所包含的像素数量
  • dp(也即dip,device independent pixels)设备独立像素,这是Android中专门定义的一个虚拟的像素单位,就是为了应对Android碎片化问题而创造出使用的,它是根据屏幕大小和密度动态渲染的,计算公式:

px = dp * ( dpi / 160)

  • sp(Scale-independent Pixels):用于表示字体大小,其概念与dp是一致的,也是为了保持设备无关而使用的

  • 注:一开始我也搞不清出dpi和ppi的区别但是看了这篇文章之后我就了解了大概,从设备上说dpi=ppi,只是使用习惯的问题,只是dpi一开始是用在印刷行业,如果上面的英文看不懂,可以看这篇翻译:这里是翻译

    2.如何计算不同尺寸的手机的PPI

    • 其实在理解了ppi的概念之后我们计算手机的ppi就非常简单了,我们知道了手机的尺寸(也就是对角线长度)和分辨率之后,通过勾股定理就能计算出手机的ppi,这里以三星s8为例(说实话我给这样一个例子我觉得很智障,因为ppi参数网上都有,捂脸):
      三星s8屏幕信息
      1.计算屏幕高宽比:2960:1440=18.5:9
      2.计算出高或者宽的尺寸(这里以宽度为例):9*5.8/√18.5²+9² ~2.53 in
      3.计算ppi:1440 pixel/2.53 in ~ 569 ppi

    3.不同PPI分辨率下该如何放置不同大小的图片呢

    1.我们在做屏幕适配时可以把不同大小的图片添加到不同的drawable- dpi文件夹下进行适配,但是网上这样的资料很少,我都搞不清楚到底什么ppi范围对应什么drawable -dpi文件夹,但是经过我的测试我总结出来了其对应关系:
    1. 120-160ppi:mdpi
    2. 160-240ppi:hdpi
    3. 240-320ppi:xhdpi
    4. 320-480ppi:xxhdpi
    5. 480-640ppi :xxxhdpi
      注:虽然其对应关系不是绝对的,具体还要看手机的尺寸大小,但是目前而言手机屏幕的大小比例基本是16:9,所以没什么问题。
      常见的设备屏幕尺寸比例和屏幕密度(density)见GOOGLE官网:常见屏幕分辨率和密度

    4.GOOGLE的百分比库的使用

    • 暂时没有使用,以后添加
    原创粉丝点击