Android: Как я могу создать массив Drawable?

Как я могу создать массив, который обрабатывает некоторые из моих изображений, чтобы я мог использовать его вот так?

ImageView.setImageResource(image[1]); 

Надеюсь, я хорошо объяснил …

Для этого вам не нужен массив Drawable, просто массив идентификаторов ресурсов, потому что «setImageResource» принимает эти идентификаторы. Как насчет этого:

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

Или для изменяемой версии:

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

Прежде всего, вы должны получить все доступные идентификаторы ваших изображений следующим способом:

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

Например, вы можете прочитать все доступные идентификаторы в цикле:

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

.. и затем сохраните их в массив растровых изображений:

 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));