我想创建一个动态decodeResource来使用对象中的非常图像。
这是我的代码:
for(int i=42; i<55; i++) {
bitmap = BitmapFactory.decodeResource(context.getResources(),
Integer.parseInt("R.drawable.a"+i));
}
我想获取文件
R.drawable.a43 to a54
可以为decodeResource创建一个循环吗?
答案 0 :(得分:2)
检索&#39; R.drawable.a的资源ID ##&#39;我们可以动态地使用Resources.getIdentifier
,如下所示:
final String pkg = context.getPackageName();
final Resources resources = context.getResources();
...
int num = ...; /* between 43 and 54 */
final int id = resources.getIdentifier("a" + num, "drawable", pkg);
您可以使用类似于现在的循环将这些存储在List
中,只需稍微修改一下边界:
final String pkg = context.getPackageName();
final Resources resources = context.getResources();
final List<Bitmap> bitmaps = new ArrayList<Bitmap>();
for (int i = 43; i <= 54; ++i) {
/* decode bitmap with id R.drawable.a{i} */
final Bitmap bitmap = BitmapFactory.decodeResource(resources,
resources.getIdentifier("a" + i, "drawable", pkg));
bitmaps.add(bitmap);
}
/* now bitmaps contains the Bitmaps */