Intereting Posts
Google Play Игровые службы Вход в систему Android-абразив, использующий zebra-принтер imz320, отображается как обратный символ Как передать несколько параметров в успокоительный веб-сервис, используя http post Отчет об ошибках в сервисах Google Play Android NestedScrollView выравнивает контент сверху Android listview отображает ложные данные после прокрутки (пользовательский адаптер) Отправка запроса HTTP-сообщения с Android Использование 1.7 требует компиляции с Android 4.4 (KitKat); В настоящее время используется API 14 Анти-хак-решение для секретного ключа в Android-приложении? Проблема с метазоном и Android Как обнаружить пользователя руки, удерживающего его устройство Почему мой вещательный приемник не получает действия в системе? Ошибка сборки Travis Ci, вызванная лицензионными соглашениями Android SDK Как отправить MMS программно? «Дооснащение» неспособно создать адаптер вызова

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