android 创建别名资源

如果您想将某一资源用于多种设备配置(但是不想作为默认资源提供),则无需将同一资源放入多个备用资源目录中。 相反,您可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名。

注:并非所有资源都会提供相应机制让您创建指向其他资源的别名。 特别是,xml/ 目录中的动画资源、菜单资源、原始资源以及其他未指定资源均不提供此功能。

例如,假设您有一个应用图标 icon.png,并且需要不同语言区域的独特版本。 但是,加拿大英语和加拿大法语这两种语言区域需要使用同一版本。 您可能会认为需要将相同的图像复制到加拿大英语和加拿大法语对应的资源目录中,但事实并非如此。 相反,您可以将用于二者的图像另存为 icon_ca.png(除 icon.png 以外的任何名称),并将其放入默认 res/drawable/ 目录中。然后,在 res/drawable-en-rCA/ 和 res/drawable-fr-rCA/ 中创建 icon.xml 文件,使用 元素引用 icon_ca.png 资源。这样,您只需存储 PNG 文件的一个版本和两个指向该版本的小型 XML 文件。(XML 文件示例如下。)

可绘制对象
要创建指向现有可绘制对象的别名,请使用 元素。例如:

<?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/ 中)的别名。

布局
要创建指向现有布局的别名,请使用包装在 中的 元素。例如:

<?xml version="1.0" encoding="utf-8"?>
<merge>
    <include layout="@layout/main_ltr"/>
</merge>

如果将此文件另存为 main.xml,则会编译到可作为 R.layout.main 引用的资源中,但实际上它是 R.layout.main_ltr 资源的别名。

字符串和其他简单值
要创建指向现有字符串的别名,只需将所需字符串的资源 ID 用作新字符串的值即可。例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello</string>
    <string name="hi">@string/hello</string>
</resources>

R.string.hi 资源现在是 R.string.hello 的别名。

其他简单值的原理相同。 例如,
颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#f00</color>
    <color name="highlight">@color/red</color>
</resources>
发布了15 篇原创文章 · 获赞 3 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览