Android: загрузка нескольких изображений - PullRequest
0 голосов
/ 02 февраля 2011

Я недавно начал разрабатывать игру для Android, никогда не использовал ее раньше, и мне было интересно, есть ли простой способ загрузить набор изображений в приложение. Поскольку моя текущая реализация включает в основном

Создание массива int [],
Сохраняя значения каждого элемента в этом массиве, (теперь это должно быть написано вручную, поэтому, если я добавлю больше изображений, оно должно быть добавлено программно)

Затем перебираем каждый элемент массива и вызываем BitmapFactory для получения ресурса. (К сожалению, у меня нет с собой кода, так как он дома, и я на работе, но в этом суть)

Итак, 2 вопроса, есть ли способ получить drawables без необходимости вручную вставлять каждый элемент в int [] - то есть искать, возможно, префикс имени файла, а затем загружать только ресурс с префиксом?

Это подводит меня ко второму вопросу, потому что я больше, чем просто изображения в моем каталоге ресурсов для рисования, есть ли способ добавить дополнительную организацию (папки) для лучшего управления файлами. Как и в настоящее время, у меня есть множество изображений в нарисованном файле и как я буду ссылаться на эти подпапки / изображения.

Ответы [ 2 ]

1 голос
/ 02 февраля 2011

Вы не можете иметь подпапки в структуре ресурсов.Android зависит от макета папки, чтобы определить, какой ресурс использовать в каких условиях (локализация, различные разрешения экрана и т. Д.).

Я не уверен, почему именно вы пытаетесь загрузить целую кучу изображенийно есть несколько (более медленных) методов, которые позволяют вам искать ресурс по строковому имени.Если вы использовали соглашение об именах для ваших изображений, вы можете посмотреть их таким образом через [Resources.getIdentifier ()] [1].Тем не менее, производительность игры, скорее всего, имеет значение, поэтому вам, вероятно, лучше использовать более ручной подход, использующий идентификаторы int напрямую, поскольку он гораздо более эффективен.

[1]: http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String, java.lang.String, java.lang.String)

0 голосов
/ 02 февраля 2011

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

public int getIdentifier (String name, String defType, String defPackage) Так как: Уровень API 1

Возвращает идентификатор ресурса для данного имени ресурса.Полное имя ресурса имеет форму «пакет: тип / запись».Первые два компонента (package и type) являются необязательными, если здесь заданы соответственно defType и defPackage.

Примечание: использование этой функции не рекомендуется.Гораздо эффективнее получать ресурсы по идентификатору, чем по имени.

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

Конечно, есть функция, чтобы исправить это?

...