Получить динамический список изображений

#android #android-layout

#Android #android-макет

Вопрос:

Я следую руководству по Android Hello-GridView и хотел бы использовать динамический список изображений из моей папки res / drawable, а не жестко закодированный массив, как предлагалось:

 // references to our images
private Integer[] mThumbIds = {
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7,
        R.drawable.sample_0, R.drawable.sample_1
};
  

Как я могу зацикливать и динамически загружать эти изображения?

Ответ №1:

Попробуйте использовать для этого assets папку вместо того, чтобы определять их как ресурсы. Просто сбросьте изображения в папку под res/assets (для этого примера, res /assets /images). Следующий код должен затем получить список файлов в этой папке:

 AssetManager assets = getAssets();
String[] drawables = assets.list("images");
  

Затем просто установите режим рисования с помощью кода, опубликованного @Jack Smartie выше:

 imageView.setBackgroundDrawable(Drawable.createFromPath(drawables[i]))
  

Где ‘i’ — это индекс нужного вам объекта рисования.

Ответ №2:

Обновление: Упс, я не прочитал ваш вопрос так внимательно, как следовало. Я не уверен, как вы могли бы динамически загружать ресурсы в свою папку для рисования, кроме как жестко закодировать ее в массив.

Здравствуйте,

Я сделал нечто подобное в своем приложении.

Посмотрите в getView методе вашего ImageAdapter класса. В if (view == null) части вашего кода перед else используйте один из параметров настройки ImageView (например, setImageBitmap, setImageDrawable, setBackground и т.д.).

Я забыл упомянуть, что вам нужно будет создать массив строк, который содержит путь к файлу ваших изображений.

В моем коде это строка, которая у меня есть:

imageView.setBackgroundDrawable(Drawable.createFromPath(MainActivity.imageStringArray[position]));