Android:如何制作Drawable数组?

Joe*_*yCK 21 android

我如何制作一个处理我的一些图像的数组,以便我可以像这样使用它?:

ImageView.setImageResource(image[1]);
Run Code Online (Sandbox Code Playgroud)

我希望我解释得很好......

Wal*_*ndt 68

要做到这一点,你不希望绘制对象的数组,只是资源标识符数组,因为"setImageResource"需要这些标识符.这个怎么样:

int[] myImageList = new int[]{R.drawable.thingOne, R.drawable.thingTwo};
// later...
myImageView.setImageResource(myImageList[i]);
Run Code Online (Sandbox Code Playgroud)

或者对于可调整大小的版本:

ArrayList<Integer> myImageList = new ArrayList<>();
myImageList.add(R.drawable.thingOne);
// later...
myImageView.setImageResource(myImageList.get(i));
Run Code Online (Sandbox Code Playgroud)

  • 如何实现将图像添加到int [],但如何搜索所有文件并添加而不是明确命名要添加的每个文件呢? (2认同)

Bev*_*vor 10

首先,您必须使用以下方法获取图片的所有可绘制ID:

int android.content.res.Resources.getIdentifier(String name, String defType, String defPackage)
Run Code Online (Sandbox Code Playgroud)

例如,您可以在循环中读取所有可绘制的ID:

int drawableId = resources.getIdentifier("picture01", "drawable", "pkg.of.your.java.files");
                                          picture02...
                                          picture03...
Run Code Online (Sandbox Code Playgroud)

..然后将它们保存到位图数组中:

private Bitmap[] images;
images[i] = BitmapFactory.decodeResource(resources, drawableId);
Run Code Online (Sandbox Code Playgroud)

现在您可以将图像用作数组.