【问题标题】:Access a image dynamically from res folder android从 res 文件夹 android 动态访问图像
【发布时间】:2013-04-18 06:16:12
【问题描述】:
我在 res 文件夹中有这样的图像
我想像这样动态访问这个
holder.Viewcover.setImageDrawable(Drawable.createFromPath("R.id." + CoverimgUrl.get(position)));
CoverimgUrl 是一个有两个图像名称的列表,一个是 book_cover 和另一个是 blank_image 这个数组是动态生成的,所以我怎么能从该列表中设置此图像
一句话,如何动态访问可绘制文件夹中的图像,我需要从数组列表中获取该图像名称?
【问题讨论】:
标签:
android
android-image
【解决方案1】:
Resources res = getResources();
String mDrawableName = "image_name";
int resourceId = res.getIdentifier(mDrawableName , "drawable", getPackageName());
Drawable drawable = res.getDrawable(resourceId);
icon.setImageDrawable(drawable );
【解决方案2】:
首先制作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));
【解决方案3】:
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。
让我知道这是否有效。