如何创建动态decodeResource?

时间:2016-08-12 00:12:41

标签: android

我想创建一个动态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创建一个循环吗?

1 个答案:

答案 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 */