android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图

屏幕适配

首先理解下各个尺寸单位代表的意思

  • 尺寸含义 
    1. px: 像素 
    2. dip: Density-independent pixel 独立像素密度 
    3. dpi: dot per inch 分辨率 
    4. ppi: pixel per inch 指每英寸所拥有的像素 
      ppi计算:(宽度的平方 + 高度的平方)开根号 / 对角线的长度 
    5. Density: density值表示每英寸有多少个显示点,与分辨率是两个概念 
      density计算:dpi / 160 密度值

各个单位之间的互换

  • 公式: dp = px / (dpi / 160) px = dp * (dpi / 160) dp = px / denisity or dp = px / (dpi / 160)

    • dpi: 是厂商定义的常量值 = 根据勾股定理开根除4 
      ldpi: dpi 120 –> 240 * 320 
      mdpi: dpi 160 –> 320 * 480 
      hdpi: dpi 240 –> 480 * 800 
      xhdpi: dpi 320 –> 720 * 1080 如:(720*720+1080*1080)开根号 除 4 = 320dpi 
      xxhdpi:dpi 380 –>1080p 1920*1080 高清
    • px :手机像素 = dp * (dpi / 160) 
      ldpi: 120px–> dp = 120 / (120 / 160) = 160dp 
      mdpi: 160px–> dp = 160 /(160/160) = 160dp 
      hdpi: 240px–> dp = 240 /(240/160) = 160dp 
      xhdpi:360px–> dp = 360 / (320/160)= 180dp

    • densityDip:值表示每英寸有多少个显示点 = px / denisity 
      QVGA: density=0.75 densityDpi=120 QVGA(240*320) 
      HVGA:density=1.0 densityDpi=160 HVGA(320*480) 
      VGA:density=1.0 densityDpi=160 VGA(480*640) 
      WVGA:density = 1.5 densityDpi=240 WVGA(480*800) 
      WQVGA:density=2.0 densityDpi=120 WQVGA(240*400)

      而当densityDip=160时,1dp=1px。

设计资源紧张怎么办?

在现在的App开发中,基本都会有iOS和Android版本,有些公司为了保持App不同版本的体验交互一致,还有些公司的设计资源可能比较紧张,这些情况下iOS和Android版本基本是一个设计师主导,而大多数情况下设计师可能更会以iPhone手机为基础进行设计,包括后期的切图之类的。这个时候身为Android开发人员你是否还要求设计师单独为Android端切一套图片资源呢?这会让你们的设计师崩溃的,下面就来告诉一个项目中总结的更棒的方法。

出一套图,有人肯定会觉得使用最新的iPhone6(6s和6的尺寸以及分辨率都一样)来做原型设计,而iPhone6的屏幕分辨率为1334×750, 屏幕尺寸为4英寸,根据勾股定理(a^2 + b^2 = c^2)1334^2+750^2, 然后再对其开根号可求出屏幕对角线的分辨率为:1530,除以4可得出iphone6的dpi:1530/4≈382 可以看出iPhone5的屏幕的dpi约等于380, 刚好属于xhdpi,但是好的产品一般是以用户群体来作标准的,不是所有人都用得起i6,用得起6p这些高清屏手机;

目前我们公司是以iPhone5(5s和5的尺寸以及分辨率都一样)来做原型设计,而iPhone5的屏幕分辨率为640X1164, 屏幕尺寸为4英寸,根据勾股定理算出iPhone5分辨率为:1328,dpi为:320, 刚好属于xhdpi; 并且xhdp在xxhdpi上的显示效果也相差不多;

xhdpi是目前最大市场

一般情况下只需要提供一套大的dpi的图片就ok了,现在市面手机分辨率最大可达到1080X1920的分辨率,如Nexus6p,2560×1440,dpi更是高于xxhdpi,但是毕竟还没普及,目前市面上最普遍的高端机的分辨率还多集中在720X1080范围,也就是多集中在xhdpi,所以目前来看xhpdi规格的图片成为了首选。当然随着技术规格的提高以后发展,以后可能市场上xxdpi的手机会越来越普遍,但这是后话。

  • .因此得出结果 
    出图:效果图(主要就1套) 
    xhdpi: 720 * 1280

图片的简单适配

  • 布局适配 
    不同的手机的图片放到 对应的分辨率的目录下drawable-xxxx 
    在layout的后面添加xxx,添加的布局名称要要一致

    ldpi: dpi 120 –> 240 * 320 
    mdpi: dpi 160 –> 320 * 480 
    hdpi: dpi 240 –> 480 * 800 
    xhdpi: dpi 320 –> 720 * 1080

  • 动态的布局适配 
    一般屏幕适配也有通过margin或者权重来去做屏幕的适配

猜你喜欢

转载自blog.csdn.net/m0_37321987/article/details/81185664