动态获取资源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);   
相关文章
|
18天前
|
存储 NoSQL 数据库
全局id生成方式
全局id生成方式
|
7月前
|
存储 Rust 算法
有关'全局唯一id'
有关'全局唯一id'
53 0
|
7月前
|
弹性计算 固态存储 网络安全
使用Count功能批量创建资源
本场景将以批量创建ECS实例和EIP,并为ECS实例绑定EIP为例,为您介绍如何使用Count功能。
163 0
|
SQL 机器学习/深度学习 分布式计算
如何判断多账号是同一个人?用图技术搞定 ID Mapping
如何判断多个账号,它可能是一个邮箱,一个地址,一个手机对应着多个 ID,或者是多个同一前缀的邮箱,背后是同一个用户。如何进行这种关联性信息的收集,判断这些信息归属于同一人呢?
282 0
|
JavaScript
给类的每个实例分配唯一id
给类的每个实例分配唯一id
134 0
|
前端开发
前端工作小结22-获取id值
前端工作小结22-获取id值
61 0
前端工作小结22-获取id值
|
Java 数据库连接 API
try-with-resource:自动地关闭资源
try-with-resource:自动地关闭资源
431 0
|
机器学习/深度学习 算法 安全
|
弹性计算 运维 监控
基于标签(TAG)批量管理资源
如何基于标签实现批量管理资源的实践?比如:基于标签中指定环境(key=env)为预发(value=pre)加应用名称(key=appname, value=alipay)的资源来批量启动;批量安装插件;批量启动机器;批量更换操作系统;批量升级带宽;批量删除资源等等。
2179 0
基于标签(TAG)批量管理资源
|
弹性计算 API
如何使用标签(TAG RAM)控制对ECS 资源的访问?
如何创建RAM (Resource Access Management)策略以使用标签控制对 云服务器(Elastic Compute Service,ECS)实例的访问?
10948 0