动态获取资源ID-用getIdentifier()获取资源Id

简介:
做项目过程中遇到一个问题,从数据库里读取图片名称,然后调用图片。直接用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);   
相关文章
|
Java 数据库
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
7477 2
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
|
人工智能 分布式计算 大数据
重磅!阿里云在海外市场推出系列AI大数据产品
重磅!阿里云在海外市场推出系列AI大数据产品
620 1
|
Java 测试技术 开发者
Java线程池ThreadPoolExcutor源码解读详解09-4种拒绝策略
本文介绍了线程池的四种拒绝策略:AbortPolicy、DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy,并通过代码示例展示了它们在任务过多时的不同处理方式。AbortPolicy会抛出异常并停止主线程;DiscardPolicy会默默丢弃新任务;DiscardOldestPolicy会抛弃队列中最旧的任务来接纳新任务;而CallerRunsPolicy则是由调用者线程执行被拒绝的任务,以减缓新任务的提交速度。这四种策略适用于不同的场景,开发者可以根据需求选择合适的策略。
1396 5
|
算法 Python
NumPy 高级教程——性能优化
NumPy 高级教程——性能优化 【1月更文挑战第2篇】
623 0
|
Python
Python控制流语句详解
Python中的控制流语句包括条件语句(if/elif/else)、循环语句(for/while)和异常处理(try/except/finally)。条件语句根据条件执行不同代码块,循环语句用于重复执行代码,如for循环遍历序列,while循环基于条件重复。异常处理则能捕获并处理程序运行时的错误,确保程序的健壮性。这些语句是构建功能强大、灵活程序的关键。
|
运维 负载均衡 算法
Nacos必知必会:这些知识点你一定要掌握!
Nacos必知必会:这些知识点你一定要掌握!
1775 0
|
机器学习/深度学习 人工智能 算法
图解机器学习 | 逻辑回归算法详解
逻辑回归简单有效且可解释性强,是机器学习领域最常见的模型之一。本文讲解逻辑回归算法的核心思想,并讲解sigmoid函数、梯度下降、解决过拟合、线性/非线性切分等重要知识点。
797 1
图解机器学习 | 逻辑回归算法详解
|
3天前
|
人工智能 运维 安全
|
1天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!