让一份程序同时适应手机和平板,动态加载布局的技巧

  由于平板电脑的屏幕足够大,我们会发现很多应该采用了双页模式即程序在左侧面板上显示一个包含子项的列表,右侧面板显示内容,而手机屏幕一次只能显示一页内容,因此两个页面需要分开显示。
  为了让碎片发挥更大的空间,我们可以考虑如何才能让程序根据设备的屏幕大小和分辨率在运行的时候动态加载哪个布局,那就是使用限定符
  比如:
  单页模式:res/layout/activity_main,xml (只显示列表页)
  双页模式:res/layout-large/activity_main.xml(按比例同时显示列表页和内容页即包含两个碎片)
  其中large就是一个限定符,那些屏幕被认为是large的设备就会自动加载layout-large文件夹下的布局,而小屏幕的设备则会加载layout文件夹下的布局。

  • 根据屏幕大小,有以下限定符:
    small:给小屏幕设备提供资源
    normal:给中等屏幕设备提供资源
    large:给大屏幕设备提供资源
    xlarge:给超大屏幕设备提供资源
  • 根据屏幕分辨率,有以下限定符:
    ldpi:给低分辨率设备提供资源(120dpi以下)
    mdpi:给中等分辨率设备提供资源(120dpi~160dpi)
    hdpi:给高分辨率设备提供资源(160dpi~240dpi)
    xhdpi:给超高分辨率设备提供资源(240dpi~320dpi)
    xxhdpi:给超超高分辨率设备提供资源(320dpi~480dpi)
  • 根据屏幕方向,有以下限定符:
    land:给横屏设备提供资源
    port:给竖屏设备提供资源

      新问题
      上面的示例中large限定符到底多大,为了更加灵活地为不同的设备加载布局,这时可以使用更加具体的最小宽度(smallest-width)限定符。
      最小宽度限定符允许我们对屏幕的宽度指定一个最小值(单位:dp),然后以这个最小值为临界点,屏幕宽度大于这个值的设备加载一个布局,屏幕宽度小于这个值的设备加载另一个布局。
      举例:res/layout-sw500dp/activity_main.xml
      说明:当程序运行在屏幕宽度大于500dp的设备上时,会加载layout-sw500dp/activity_main.xml布局,当程序运行在屏幕宽度小于500dp的设备上时,会加载默认的layout/activity_main.xml布局。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打不死的迪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值