【Android 适配】关于android屏幕适配的最佳实践

今天研读了一下《Android2高级编程》中的“分辨率和像素密度无关性”一章,启发很多,特来分享。

  • 资源框架和分辨率无关性
    • 屏幕尺寸和像素密度的资源限定符
      • 屏幕尺寸
        • small  小于标准的3.2''的屏幕
        • medium 典型的智能手机屏幕尺寸
        • large 一般为平板电脑的尺寸
        • xlarge 一般为TV的尺寸,超大屏幕
      • 像素密度  显示屏的像素密度,通常指每英寸点数(dpi) 判断方式:getApplicationContext().getResources().getDisplayMetrics().density;
        • ldpi 用于像素密度在100~140之间的低密度资源
        • mdpi  用于像素密度在140~180之间的中密度资源
        • hdpi  用于像素密度在190~250之间的高密度资源
        • xhdpi 用于像素密度大于320的超高密度资源
        • nodpi   不管屏幕密度多少都不能伸缩的资源
      • 方向
        • land  横屏
        • port   竖屏
      • 纵横比
        • long
        • notlong 用于具有典型只能手机的纵横比的资源
      • 请看图
        • 相同的像素下,不同像素密度(DPI)的图片大小
      • 限定符可独立使用,也可以一起使用例如【res/layout-small-long】
    • 指定支持的屏幕密度

      • false值将迫使Android使用兼容性缩放比例来尝正确的缩放应用程序UI。
      • anyDensity 当应用程序像是在不同屏幕密度的设备上时候,如何缩放应用程序,考虑编号的像素密度则将属性设为ture
  • 分辨率无关性的最佳实践
    • 相对布局和密度无关的像素(大小使用dp、文字使用sp,尽量使用wrap_content和fill_parent)
      • 值得一提:一个密度无关的像素(dp)等同于160dpi屏幕上的一个像素,两个密度无关的像素(dp)的在240dpi的屏幕上将显示为3个像素宽
    • 使用可缩放图形资源(NinePatch)
    • 为不同的屏幕提供优化后的资源
  • 反复测试
  • Google提供的最佳实践
    • 使用wrap_content、fill_parent或dp单元尺寸
    • 不要在应用程序代码使用硬编码的像素值
    • 不要使用AbsoluteLayout
    • 为不同的屏幕密度提供替代不同的资源


  • 转载的一些有用信息
    • http://my.eoe.cn/appadventure/archive/5580.html
    • 使用新的尺寸限定符
      • 7寸平板:不要再使用layout-large,使用layout-sw600dp。
        • 说明:Nexus 7 = 960 X 600 dp;最小的尺寸是600。
      • 10寸平板:不要再使用layout-xlarge,使用layout-sw720dp。
        • 说明:Nexus 10 = 1280 X 800 dp;最小的尺寸是800。不过有些10寸的平板像素可能要更小一点,所以这里取720只是我们常用的中间值。
      • sw:smallest width,即最小宽度
        表示如果屏幕最小尺寸(宽和高中的较小者)大于等于XX的话,系统就指定匹配的这个layout_swXXdp。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值