Android:我怎样才能做一个可绘制的数组?

我怎样才能做一个数组处理我的一些图片,以便我可以像这样使用它:

ImageView.setImageResource(image[1]); 

我希望我解释得很好

Solutions Collecting From Web of "Android:我怎样才能做一个可绘制的数组?"

要做到这一点,你不需要一个Drawable数组,只是一个资源标识符数组,因为'setImageResource'需要这些标识符。 这个怎么样:

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

或者可以resize的版本:

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

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

 int android.content.res.Resources.getIdentifier(String name, String defType, String defPackage) 

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

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

然后将它们保存到位图arrays中:

 private Bitmap[] images; images[i] = BitmapFactory.decodeResource(resources, drawableId); 

现在你可以使用你的图像作为数组。

就@Bevor而言,您可以使用getResources()方法而不是android.content.res.Resources如下所示:

 ArrayList<Integer> imgArr = new ArrayList<Integer>(); for(int i=0;i<5;i++){ imgArr.add(getResources().getIdentifier("picture"+i, "drawable", "pkg.of.your.java.files")); } 

用法:

 imageView.setImageResource((int)imgArr.get(3));