朋友做項目過程中遇到一個問題,從數據庫裏讀取圖片名稱,然後調用圖片。
但是直接用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)