我知道可以使用如下代码从另一个包安装资源 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"
在安卓中docs http://developer.android.com/reference/android/view/View.html#attr_android%3abackground解释:
可能是对另一个资源的引用,其形式为
“@[+][package:]type:name”或表单中的主题属性
“?[包:][类型:]名称”。
我试图指定这样的内容:
android:background="@com.my.skin:drawable:background_image"
or this:
android:background="?com.my.skin:drawable:background_image"
但它不起作用,我的资源文件未编译。
谁知道如何使用显式规范加载资源。
让你的项目成为一个库项目,你可以在另一个android项目中引用它。
图书馆项目
这些项目包含可共享的 Android源代码 and Android项目中可以参考的资源。当您有想要重用的通用代码时,这非常有用。库项目无法安装到设备上,但是,它们会在构建时提取到 .apk 文件中。
欲了解更多信息,请查看主题下的链接图书馆项目。
http://developer.android.com/tools/projects/index.html http://developer.android.com/tools/projects/index.html
您的库项目将勾选一个复选框,如项目中所示。
您可以将库项目添加到您的 android 项目中。右键单击您的项目。转到属性。在左侧面板中选择 Android。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)