从具有特定名称后缀的可绘制目录中获取随机图像



我在res/drawable目录中有各种图像,我想从中获得一个随机图像,具有"module_"后缀,然后将其加载到一个可绘制的对象中。图像名称不是连续命名的,即1、2、3等,它们有不同的名称来描述它包含的内容。"苹果"、"香蕉"等什么好主意吗?

 void populate() {
        try {
            ArrayList<Integer> number = new ArrayList<Integer>();
            for (int i = 0; i <= 48; i++) // 1//
            {
                number.add(i + 1);
                Log.i("nuber in loop ",number.add(i+1)+"");
            }
            Collections.shuffle(number);
            Random r = new Random();
            int Start = r.nextInt(number.size());
            if (Start - 9 >= number.size() - 1)
                Start -= 9;
            Log.i("Start ",Start+"");
            for (int i = 0; i <=8; i++) 
            {
                 String imgName = "img" + number.get(Start);
                Log.i("imagename", imgName);
                int id = getResources().getIdentifier(imgName, "drawable",
                        getPackageName());
                Log.i("id", id + "");
                ImgBtnArray[i].setImageResource(id);
                Start++;
            }
            }
            catch (Exception e) {
                        }
    }

放入上述函数中48是可从任意9张随机图片中抽取的图像总数,它也会检查是否允许复制

在上面,我把1到49张图片放入序列1.png,2.png中,这样更容易。我认为你可以这样创建字符串数组你可以这样做

我不认为它可能得到一个随机图像从可绘制的目录,所以我只是硬编码一个数组与图像和随机索引到。

最新更新