屏幕适配时,别名资源的使用

来源:互联网 发布:js prototype 编辑:程序博客网 时间:2024/05/17 03:58

一个APK运行在手机和平板电脑上,可能需要加载不同的布局文件。
此时,可以使用别名资源解决这种需求。

例如,可以在res/values目录下新建一个refs.xml,其内容为:

<?xml version="1.0" encoding="utf-8"?><resources>    <!--type属性决定该资源的实际类型-->    <!--该别名资源实际指向layout目录下的activity_fragment.xml文件-->    <item name="activity_masterdetail" type="layout">@layout/activity_fragment</item></resources>

该别名资源的ID为:R.layout.activity_masterdetail。

然后,我们可以再次创建一个refs.xml文件,不过此时指定其最小屏幕宽度,如下图:

做完上述工作后,res/values中就存在两个refs.xml文件:

相当于在一个refs.xml后增加了资源修饰符。
sw指的是屏幕最小尺寸,与设备当前的运行方向无关。

我们在新的refs.xml中增加下述内容:

<?xml version="1.0" encoding="utf-8"?><resources>    <!--此时别名资源实际指向layout目录下的activity_twopane.xml文件-->    <item name="activity_masterdetail" type="layout">@layout/activity_twopane</item></resources>

当我们需要获取布局的资源文件时,就可以使用类似如下代码:

@Overrideprotected int getLayoutResId() {    return R.layout.activity_masterdetail;}

于是,在小于指定尺寸的设备上,将加载activity_fragment.xml;
在大于指定尺寸的设备上,将加载activity_twopane.xml文件。

0 0
原创粉丝点击