如何自动创建可绘制数组

时间:2015-04-25 23:44:58

标签: java android

我有while循环创建我的String数组,如下所示

String[] imageId = {"R.drawable.img0","R.drawable.img1"};

但我希望将其存储到整数数组

Integer[] imageId = {R.drawable.img20,R.drawable.img1};

2 个答案:

答案 0 :(得分:0)

在不使用反射的情况下执行此操作的一种方法是为您拥有的所有drawable创建映射(因为您在编译时知道所有可绘制的资源):

static final Map<String, Integer> MAPPING;
static {
    final Map<String, Integer> tempMapping = new HashMap<>();
    tempMapping.put("R.drawable.img0", R.drawable.img20);
    tempMapping.put("R.drawable.img1", R.drawable.img1);
    tempMapping.put([your other drawables]);
    MAPPING = Collections.unmodifiableMap(valuesByName);
}

之后,根据您应用的逻辑,您构建了一系列可绘制的&#39;名称,并将其转换为一系列drawables&#39; ids使用地图。

答案 1 :(得分:0)

  

我想将它存储到整数数组

以下是将数组变量保存为整数的示例:

int[] imageId = {R.drawable.image1, // index 0
               R.drawable.image2, // index 1
               R.drawable.image3, // index 2
               R.drawable.image4 // index 3
               };

要获取数组值:

int drawable1 = imageId[0] // returns R.drawable.image1
int drawable2 = imageId[1] // returns R.drawable.image2
int drawable3 = imageId[2] // returns R.drawable.image3
int drawable4 = imageId[3] // returns R.drawable.image4

希望这个例子可以帮到你很多。