用getIdentifier()获取资源Id

朋友做项目过程中遇到一个问题,从数据库里读取图片名称,然后调用图片。

但是直接用R.drawable.?无法调用。头痛,不过还是解决了.嘻嘻.

1. 不把图片放在res/drawable下,而是存放在src某个package中

(如:com.drawable.resource),使用流读取:

String str= "com/drawable/resource/aa.png"; 
InputStream is = getClassLoader().getResourceAsStream(str); 
Drawable.createFromStream(is, "src"); 

2. 如果还是希望直接使用res/drawable中的图片,就需要通过下面的方法了: 
假设创建工程的时候,填写的package名字为:com.lily.test
int resID = getResources().getIdentifier("imageName", "drawable", "com.lily.test"); 

Drawable image = getResources().getDrawable(resID);

通过res.getIdentifier()方法来获得资源的ID,在去应用资源,其运行的效率,可真要掂量掂量

引用API上的注释:此方法不推荐使用,引用资源最好使用其全局的ID!

 

另外,通过ID获取资源名称的方法也十分简单:getResourceName(int resID)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值