使用getIdentifier()获取资源Id
(1)方式一
Resources resources = context.getResources();
int indentify = resources. getIdentifier ( org.loveandroid.androidtest:drawable/icon" , null , null );
if(indentify>0){
icon = resources.getDrawable(indentify);
}
(2)方式二
Resources resources = context.getResources();
int indentify =getResources().getIdentifier("icon", "drawable", "org.anddev.android.testproject");
如果找到了,返回资源Id,如果找不到,返回0 。
写了一个方法:获取资源ID,如果不存在返回0
static int getResourceId(Context context,String name,Stringtype,String packageName){
ResourcesthemeResources=null; PackageManager pm=context.getPackageManager(); try { themeResources=pm.getResourcesForApplicati on(packageName); returnthemeResources.getIdentifier(name, type, packageName); } catch(NameNotFoundException e) { e.printStackTrace(); } return0; }
从数据库里读取图片名称,然后调用图片。直接用R.drawable.?无法调用。查了好多地方最后找到了个方法,分享给大家,希望有帮助。 主要由两种方法,个人建议第二种。 1.不把图片放在res/drawable下,而是存放在src某个package中(如:com.drawable.resource),这种情况下的调用方法为: String path = "com/drawable/resource/imageName.png"; InputStream is = getClassLoader().getResourceAsStream(path); Drawable.createFromStream(is, "src"); 2. 如果还是希望直接使用res/drawable中的图片,就需要通过下面的方法了: 假设创建工程的时候,填写的package名字为:com.test.image int resID = getResources().getIdentifier("imageName", "drawable","com.test.image"); Drawable image = getResources().getDrawable(resID);
发布日期:2021-11-12 07:57:07
浏览次数:27
分类:技术文章
本文共 1511 字,大约阅读时间需要 5 分钟。
原文地址:http://blog.csdn.net/fengye810130/article/details/9314347
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID。
主要有两种方法:(1)方式一
Resources resources = context.getResources();
int indentify = resources. getIdentifier ( org.loveandroid.androidtest:drawable/icon" , null , null );
if(indentify>0){
icon = resources.getDrawable(indentify);
}
- 第一个参数格式是:包名 + : +资源文件夹名 + / +资源名;是这种格式
然后其他的可以为null
(2)方式二
Resources resources = context.getResources();
int indentify =
- 第一个参数为ID名,第二个为资源属性是ID或者是Drawable,第三个为包名。
如果找到了,返回资源Id,如果找不到,返回0 。
写了一个方法:获取资源ID,如果不存在返回0
static int getResourceId(Context context,String name,Stringtype,String packageName){
从数据库里读取图片名称,然后调用图片。直接用R.drawable.?无法调用。查了好多地方最后找到了个方法,分享给大家,希望有帮助。 主要由两种方法,个人建议第二种。 1.不把图片放在res/drawable下,而是存放在src某个package中(如:com.drawable.resource),这种情况下的调用方法为: String path = "com/drawable/resource/imageName.png"; InputStream is = getClassLoader().getResourceAsStream(path); Drawable.createFromStream(is, "src"); 2. 如果还是希望直接使用res/drawable中的图片,就需要通过下面的方法了: 假设创建工程的时候,填写的package名字为:com.test.image int resID = getResources().getIdentifier("imageName", "drawable","com.test.image"); Drawable image = getResources().getDrawable(resID);
转载地址:https://blog.csdn.net/happy_love1990/article/details/68309082 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月21日 05时34分02秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL8.0关系数据库基础教程(三)-select语句详解
2019-04-27
JVM参数调优基础-参数的类型详解
2019-04-27
大厂都这么使用MySQL8进行条件查询
2019-04-27
SpringCloud微服务实战(十一)-微服务网关及其实现原理(Zuul为例讲解)
2019-04-27
Java程序员求职热点问题总结(持续更新)
2019-04-27
数据结构与算法(一): 动态数组
2019-04-27
MAT启动报错
2019-04-27
Jprofile解析dump文件使用详解
2019-04-27
浅谈代码覆盖率
2019-04-27
Java代码覆盖率历史发展轨迹
2019-04-27
【防止重复下单】分布式系统接口幂等性实现方案
2019-04-27
一图秒懂开源许可证协议-GPL、BSD、MIT、Mozilla、Apache,LGPL
2019-04-27
websocket 项目启示录
2019-04-27
性能测试
2019-04-27
Java电商系统商品详情页存储方案设计
2019-04-27
Jacoco探针源码解析(0.8.5 版本)
2019-04-27
Java的Instrumentation类原理分析
2019-04-27
"org.jacoco.agent.rt" 在 maven 中找不到
2019-04-27
计算机中的dump到底是什么意思?
2019-04-27