在写SDK时,我们要使用到一些res目录下的文件,但是我们不知道别人的包名时什么,这时候就无法导入“包名.R”文件,这时候我们就可以用第二种方式加载Resource资源。
public class ResourceUtils {
public static int getStyleId(String paramString) {
return getStyleId(Sdk.getInstance().getActivity().getResources(), paramString, Sdk.getInstance().getActivity().getPackageName());
}
public static int getDrawableId(String paramString) {
return getDrawableId(Sdk.getInstance().getActivity().getResources(), paramString, Sdk.getInstance().getActivity().getPackageName());
}
public static int getLayoutId(String paramString) {
return getLayoutId(Sdk.getInstance().getActivity().getResources(), paramString, Sdk.getInstance().getActivity().getPackageName());
}
public static int getidId(String paramString) {
return getidId(Sdk.getInstance().getActivity().getResources(), paramString, Sdk.getInstance().getActivity().getPackageName());
}
public static int getStyleId(Resources paramResources, String paramString1, String paramString2) {
return getId(paramResources, "style", paramString1, paramString2);
}
public static int getDrawableId(Resources paramResources, String paramString1, String paramString2) {
return getId(paramResources, "drawable", paramString1, paramString2);
}
public static int getLayoutId(Resources paramResources, String paramString1, String paramString2) {
return getId(paramResources, "layout", paramString1, paramString2);
}
public static int getidId(Resources paramResources, String paramString1, String paramString2) {
return getId(paramResources, "id", paramString1, paramString2);
}
public static int getColorId(Resources paramResources, String paramString1, String paramString2) {
return getId(paramResources, "color", paramString1, paramString2);
}
private static int getId(Resources paramResources, String paramString1, String paramString2, String paramString3) {
if ((paramString1 == null) || (paramString2 == null)) {
// c.c("type || name null");
return -1;
}
try {
return paramResources.getIdentifier(paramString2, paramString1, paramString3);
} catch (Exception localException) {
localException.printStackTrace();
// c.c("getIdentifier exception");
}
return -1;
}