我在res文件夹中有一个像这样的图像
我想像这样动态地访问这个
holder.Viewcover.setImageDrawable(Drawable.createFromPath("R.id." + CoverimgUrl.get(position)));
CoverimgUrl 是一个列表,其中有两个图像名称,一个是 book_cover &另一个是 blank_image 这个数组是动态生成的,所以如何从该列表中设置这个图像
在一个词中如何动态访问可绘制文件夹中的图像,我需要从数组列表中获取该图像名称?
答案 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。
让我知道这是否有效。