【发布时间】:2013-03-29 15:07:45
【问题描述】:
我知道存在这样的代码从另一个包安装资源 xml 文件的能力:
String resourceName = getResources().getResourceEntryName(layoutResID);
String resourceTypeName = getResources().getResourceTypeName(layoutResID);
Resources skinResources = getResourcesForPackage("com.my.skin");
int skinResourceId = skinResources.getIdentifier(resourceName, resourceTypeName, "com.my.skin");
mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mLayoutInflater.inflate(skinResources.getXml(skinResourceId), null);
super.setContentView(mLayoutInflater.inflate(skinResources.getXml(skinResourceId), null));
但我想知道如何在 xml 和可绘制资源中制作相同的内容:
例如:我有两个应用程序:
- 应用程序 main 带有包“com.my.main”
- 和应用程序 skin 与包“com.my.skin”
在android中docs解释:
可能是对另一个资源的引用,形式为 "@[+][package:]type:name" 或表单中的主题属性 “?[包:][类型:]名称”。
我试图指定这样的内容:
android:background="@com.my.skin:drawable:background_image"
或者这个:
android:background="?com.my.skin:drawable:background_image"
但它不起作用,我的资源文件没有编译。
谁知道如何使用显式规范加载资源。
【问题讨论】:
标签: android xml layout resources drawable