关于同时支持手机和pad横竖屏android布局适配

关于同时支持手机(只竖屏),特定pad(支持横竖屏)的布局方案:

场景:
前期开发了一版手机版的app(只需要竖屏),布局文件都写在layout资源文件中。后期客户要求在不另外开发的情况下,要兼容客户提供的一个pad,
这个pad分辨率为1920 * 1200。pad要支持横竖屏。

因为要求在同一个工程中,所以就考虑到根据不同分辨率使用不同的布局文件。做法如下
1:因为手机只能竖屏,所以使用默认的layout,将所有的布局放在这个下面。
2:针对于客户提供的pad,为其竖屏提供了一套布局,所以新建了一个layout-port-1920x1200的布局文件夹,所有布局放在这个里面
3:针对于客户提供的pad,为其横屏提供了一套布局,所以新建了一个layout-land-1920x1200的布局文件夹,所有布局放在这个里面

现在我的项目分别就有了如下3个资源布局文件夹
layout
layout-port-1920x1200
layout-land-1920x1200

接下来进行测试:
第一步:我创建了一个MainAcitvity.java,然后随之就有一个active_main.xml
第二步:我把这个active_main.xml分别拷贝到上面的三个文件夹中(不改名)
第三步:对这三个文件夹中的active_main.xml分别使用了一个用来区分的背景色。
layout
  |--active_main.xml  背景色为黄色
layout-port-1920x1200
 |--active_main.xml  背景色为绿色
layout-land-1920x1200
 |--active_main.xml  背景色为蓝色

下面通过设备进行验证:
1:将app放在一个手机上运行,结果界面为黄色。
2:将app放在一个我自定义的1920*1200的模拟器上运行(竖屏情况下),结果界面为绿色
3:将app放在一个我自定义的1920*1200的模拟器上运行(横屏情况下),结果界面为蓝色

通过上面试验,证实app在运行时,在检测有与之对应的分辨率的layout文件夹时,会调用相应文件夹下的布局文件
如果找不到,则会使用默认的layout文件夹下布局文件

你可能感兴趣的:(Android)