import android.content.Context; import android.util.Log; import java.lang.reflect.Field; import feng.com.testdemo.android.MyApplication; /** 获取资源工具类*/ public class ToolResource{ /** 日志输出的标识*/ private static final String TAG=ToolResource.class.getName(); /** 整个程序的上下文*/ private static Context context= MyApplication.getAppContext(); /** 获取图片资源*/ private static Class<?> CDrawable; /** 获取layout资源*/ private static Class<?> CLayout; /** 获取id资源*/ private static Class<?> CId; /** 获取动画资源*/ private static Class<?> CAnim; /** 获取样式资源*/ private static Class<?> CStyle; /** 获取字符串资源*/ private static Class<?> CString; /** 获取Array资源*/ private static Class<?> CArray; static { try { CDrawable=Class.forName(context.getPackageName()+".R$drawable"); CLayout=Class.forName(context.getPackageName()+".R$layout"); CId=Class.forName(context.getPackageName()+".R$id"); CAnim=Class.forName(context.getPackageName()+".R$anim"); CStyle=Class.forName(context.getPackageName()+".R$style"); CString=Class.forName(context.getPackageName()+".R$string"); CArray=Class.forName(context.getPackageName()+".R&array"); } catch (ClassNotFoundException e) { Log.e(TAG,"获取资源失败,原因"+e.getMessage()); } } /** 获取图片资源*/ public static int getDrawbleId(String resName){ return getResId(CDrawable,resName); } /** 获取Layout资源*/ public static int getLayout(String resName){ return getResId(CLayout,resName); } /** 获取id资源*/ public static int getId(String resName){ return getResId(CId,resName); } /** 获取动画资源*/ public static int getAnim(String resName){ return getResId(CAnim,resName); } /** 获取样式资源*/ public static int getStyle(String resName){ return getResId(CStyle,resName); } /** 获取字符串资源*/ public static int getString(String resName){ return getResId(CString,resName); } /** 获取Array资源*/ public static int getArray(String resName){ return getResId(CArray,resName); } public static int getResId(Class<?> resClass,String resName){ if (resClass==null){ throw new IllegalArgumentException("resClass 不能为空"); } try { Field field=resClass.getField(resName); return field.getInt(resName); } catch (Exception e) { Log.e(TAG,e.getMessage()); } return -1; } }
获取资源工具类
最新推荐文章于 2020-11-02 10:59:02 发布