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