2013-04-18 121 views
5

我有這樣訪問從資源動態地將圖像文件夾的Android

enter image description here

我要動態地訪問這樣

holder.Viewcover.setImageDrawable(Drawable.createFromPath("R.id." + CoverimgUrl.get(position))); 

CoverimgUrl這一個在res文件夾中的圖像是列表中有兩個圖像名稱是book_cover &另一個是blank_image這個數組是動態生成憑什麼我從該列表

設置此圖像中的一個字如何訪問一個動態圖像這是在繪製文件夾,我需要從數組列表獲取圖像的名字嗎?

回答

8
Resources res = getResources(); 
String mDrawableName = "image_name"; 
int resourceId = res.getIdentifier(mDrawableName , "drawable", getPackageName()); 
Drawable drawable = res.getDrawable(resourceId); 
icon.setImageDrawable(drawable); 
+0

非常感謝你投票支持 – Anirban 2013-04-18 06:24:48

+0

必須等5分鐘 – Anirban 2013-04-18 06:25:43

1

首先要CoverimgUrl整數

List<Integer> CoverimgUrl =new ArrayList<Integer>(); 
      CoverimgUrl.add(R.drawable.book_cover); 
      CoverimgUrl.add(R.drawable.blank_image); 

的名單,然後

holder.Viewcover.setImageResource(CoverimgUrl.get(position)); 
1

createFromPath預計該文件的路徑,而不是它的ID。

可以使用以下:

INT ID = getResources()則getIdentifier(CoverimgUrl.get(位置), 「ID」,getPackageName()); holder.Viewcover.setImageDrawable(getResources()。getDrawable(id));

getIdentifier()從字符串中獲取ID。當您使用「R」類時,它包含ID的靜態整數。所以R.id.some_name實際上是一個整數,它是some_name資源的ID。

一旦你用getIdentifier得到了這個整數,就可以使用getResources()。getDrawable()來獲得給定ID的drawable。

讓我知道這是否工作。

相關問題