资料来源于官方api文档
Android资源文件之创建与访问
Android适配之创建别名资源
如果你想将某一资源用于多种设备配置(但是不想作为默认资源提供), 则无需将同一资源放入多个备用资源目录中。相反,可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名。
注: 并非所有资源都会提供相应的机制让你创建指向其他资源的别名。特别是, xml/目录中的动画资源、菜单资源、原始资源以及其他未指定的资源均不提供此功能。
例如,加入你有有一个应用图片icon.jpg, 并且需要不同区域设置独特版本。但是,加拿大英语和加拿大法语这两种区域设置需要同一版本。你可能会认为需要将相同的图像复制到加拿大英语和法语对应的资源目录中,但事实并非如此,相反,你可以将二者的图像另存为icon_ca.png(除icon.png以外的任何名称),并将其放入默认res/drawable/
目录中。然后,在res/drawable-en-rCA/
和res/drawable-fr-rCA/
中创建icon.xml
文件,使用<bitmap
>元素引用icon_ca.png
资源。这样,您只需要储存PNG文件的一个版本和两个指向该版本的小型xml文件。(XML文件示例如下)
Drawable
要创建指向现有 Drawable
的别名, 请使用<bitmap
>元素。例如:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon_ca"/>
如果将此文件另存为icon.xml
(例如,在备用资源目录中,另存为res/drawable-en-rCA/
),则会编译到可作为R.drawable.icon
引用的资源中,但实际上它是R.drawable.icon_ca
资源(保存在res/drawable/
中)的别名。
布局
要创建指向现有布局的别名,请使用包装在<merge
>中的<include
>元素。例如:
<?xml version="1.0" encoding="utf-8"?>
<merge>
<include layout="@layout/main_ltr"/>
</merge>