2013-04-18 81 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。

让我知道这是否工作。

相关问题