用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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章