从res文件夹android动态访问图像

时间:2013-04-18 06:16:12

标签: android android-image

我在res文件夹中有一个像这样的图像

enter image description here

我想像这样动态地访问这个

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

CoverimgUrl 是一个列表,其中有两个图像名称,一个是 book_cover &另一个是 blank_image 这个数组是动态生成的,所以如何从该列表中设置这个图像

在一个词中如何动态访问可绘制文件夹中的图像,我需要从数组列表中获取该图像名称?

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分: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));

答案 2 :(得分:1)

createFromPath需要文件的路径,而不是它的ID。

您可以使用以下内容:

int id = getResources()。getIdentifier(CoverimgUrl.get(position),“id”,getPackageName()); holder.Viewcover.setImageDrawable(getResources()getDrawable(ID));

getIdentifier()从字符串中获取ID。当您使用“R”类时,它包含id的静态整数。所以R.id.some_name实际上是一个整数,它是some_name资源的id。

一旦你使用getIdentifier获得这个整数,你可以使用getResources()。getDrawable()来获得具有给定ID的drawable。

让我知道这是否有效。