我知道,存在从另一个包中的代码安装资源的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和绘图资源:
例如:我有两个应用程序:
- 应用程序主与包“com.my.main”
- 应用皮肤包“com.my.skin”
在Android的文档解释:
可以是到另一个资源的引用,其形式为“@ [+] [包:]类型:名称”,或在形式的主题属性“[包:] [类型:]名称”。
我试图说明是这样的:
android:background="@com.my.skin:drawable:background_image"
或这个:
android:background="?com.my.skin:drawable:background_image"
但它不工作,我的资源文件不编译。
谁知道如何使用明确的规范加载资源。