Android屏幕适配的基础知识

尺寸概念

resolution:以像素数表示的高度与宽度

dpi:dots per inch,一英寸的像素数量

分辨率可各种检测软件查得,也可由adb命令行查看:

adb shell wm size

![adb得到分辨率][1]

dpi可由计算得出,但实际效果是由厂家制定的dpi而定的:

  • 厂家
adb shell getprop ro.sf.lcd_density

![adb得到dpi][2]

  • 计算

    例1:分辨率为1920*1080,5.5英寸,dpi计算可得:

    dpi=19202+108025.5=400

    例2:分辨率为1920*1200,7英寸,dpi计算可得:
    dpi=19202+120027=323

屏幕适配

Android的屏幕适配大体分三部分,一部分体现在drawble中,一部分体现在values中,还有一部分体现在layout(暂不讨论)。

  • drawble
    drawble的适配很好理解,将图片放入相应的文件夹内,应用就会根据自身的dpi去调用该文件夹的图片进行显示渲染。
drawbledpi
drawble-ldpi120
drawble-mdpi160
drawble-hdpi240
drawble-xdpi320
drawble-xxdpi480
  • values
    values的适配主要靠dimens.xml中自定的dp、sp等常量单位来控制真实显示的大小。理论上,在dpi=160的屏幕中,1dp=1sp=1px;同理,dpi=320的时候,1dp=1sp=2px。
valuesdp
values-w820dp适配宽度为820dp的屏幕
values-sw500dp适配最小宽度为500dp的屏幕(宽高均大于500dp)
values-land适配横置屏幕
values-600dp-land适配横置时宽度为600dp的屏幕
values-port适配竖立屏幕
values-500dp-port适配竖立时宽度为500dp的屏幕
values-1920x1080精确适配分辨率为1920*1080的屏幕

那么问题来了,这个w820dp中的820dp是什么意思?

例1:分辨率为1920*1080,5.5英寸,dpi计算得到为400,厂家制定为480,那么其宽高分别为:

w=1920480/160=640dp

h=1080480/160=360dp

例2:分辨率为1920*1200,7英寸,dpi计算得到为323,厂家制定为320,那么其宽高分别为:
w=1920320/160=960dp

h=1200320/160=600dp

值得注意一点的是,dpi是以厂家制定为准的,计算而出的只能作为大概的参考,这个只要自己测试一下就可以得出结论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值