基于将Android工程做成jar包和资源文件的解决方法
程序员文章站
2023-12-10 22:03:16
需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于r.layout.main、r.string.name等等这样的方式来引用资源...
需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于r.layout.main、r.string.name等等这样的方式来引用资源了。
为此,我们就不能直接使用r文件,而是要通过字段名称来动态的获取资源的id,再来使用。
以下封装了一个类,可以通过字段名称动态获取id。
复制代码 代码如下:
package com.arui.util;
import android.content.context;
public class resourceutil {
public static int getlayoutid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring, "layout",
paramcontext.getpackagename());
}
public static int getstringid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring, "string",
paramcontext.getpackagename());
}
public static int getdrawableid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring,
"drawable", paramcontext.getpackagename());
}
public static int getstyleid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring,
"style", paramcontext.getpackagename());
}
public static int getid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring,
"id", paramcontext.getpackagename());
}
public static int getcolorid(context paramcontext, string paramstring) {
return paramcontext.getresources().getidentifier(paramstring,
"color", paramcontext.getpackagename());
}
}
当然,如果能够将资源文件也都写入jar包,对于第三方开发者来说,是最方便的。如果想做到这一点,就必须完全在代码中处理布局、图片资源等等,相对来说比较麻烦。如果ui等元素非常的少,值得尝试。