Android根据字符串型的资源名获取对应资源id
2015-12-12 19:51
387 查看
有时候我们想动态的根据一个字符串资源名获得到对应的资源id,如根据不同的图片名称获得对应的图片,此时就应该考虑如何实现.
大家知道,在编译Android工程时,系统会自动生成一个静态资源类R,里面根据不同的资源类型有不同的静态内部类,如id,drawable等等,而每个内部类中存放的是对应的16进制的静态资源id属性,而这些属性的属性名就是资源名.常用的方法有两个:
方法一:
利用getResources().getIdentifier(String name,String defType,String defPackage) 获取
方法二:
使用反射机制获取
PS:根据资源id获取资源名称:
String resName = getResources().getResourceName(resId);
作者:caobotao
出处: /article/5260178.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
大家知道,在编译Android工程时,系统会自动生成一个静态资源类R,里面根据不同的资源类型有不同的静态内部类,如id,drawable等等,而每个内部类中存放的是对应的16进制的静态资源id属性,而这些属性的属性名就是资源名.常用的方法有两个:
方法一:
利用getResources().getIdentifier(String name,String defType,String defPackage) 获取
public int getResource(String imageName){ Context ctx=getBaseContext(); int resId = getResources().getIdentifier(imageName, "mipmap", ctx.getPackageName()); //如果没有在"mipmap"下找到imageName,将会返回0 return resId; }
方法二:
使用反射机制获取
public int getResource(String imageName){ Class mipmap = R.mipmap.class; try { Field field = mipmap.getField(imageName); int resId = field.getInt(imageName); return resId; } catch (NoSuchFieldException e) {//如果没有在"mipmap"下找到imageName,将会返回0 return 0; } catch (IllegalAccessException e) { return 0; } }
PS:根据资源id获取资源名称:
String resName = getResources().getResourceName(resId);
作者:caobotao
出处: /article/5260178.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
相关文章推荐
- Android 最火的快速开发框架XUtils
- android studio单元测试
- Android Service通信
- android获取联系人权限,然后从日志中打印输出联系人姓名和电话
- Android Studio 不能打开
- android studio下gradle与Git错误解决方法
- Android在View onCreate时获取控件的宽和高
- 转载:Android快速开发系列 10个常用工具类
- Android SharedPreferences 使用
- android 的Base64+3DES加密
- 45.Android ViewUtil
- Android常见内存泄露优化总结
- Android在onCreate中获取控件的宽高
- android加载大图片内存问题
- Error: Error parsing D:\adt-bundle-windows-x86_64\sdk\system-images\android-23\android-wear\armeabi-
- android 环境升级到api23: Parsing Data for android-23 failed Unsupported major.minor version 51.0
- Android Studio调试功能使用总结【转】
- android Launcher应用之CellLayout的设计
- Android动画之translate(位移动画)
- Android开发优化-使用BaseActivity