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


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