2011-02-02 6 views
0

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

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

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

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

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

ответ

1

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

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

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

+0

См. Выше комментарий, я не мог набрать его здесь – somin

0

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

общественного ИНТ getIdentifier (имя String, String defType, String defPackage) С: Уровень API 1

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

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

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

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

+0

Вы должны отредактировать исходный вопрос, чтобы добавить детали, а не публиковать ответ. Несмотря на это, я не понимаю вашу озабоченность. Если вы используете ресурсы изображения, вам нужно перекомпилировать приложение, чтобы добавить новое изображение, независимо от того, как вы получаете доступ к изображению. Если вы не хотите перекомпилировать, чтобы изменить изображения, то вы не можете использовать ресурсы Android и вам нужно придумать собственное решение. –

+0

Эй, Майра, я не был уверен, где я должен был ответить, спасибо за совет. Также я ссылался на то, как Android утверждает, что вы можете редактировать ресурсы за пределами исходного кода приложений, но если я хочу добавить элемент в свою игру (для чего требуется изображение среди других примитивных типов данных), я не могу просто добавить drawable ресурс, и он будет поднят. В отличие от имени, которое я храню в массиве строк среди ресурсов значений. Что можно добавить, потому что массив зацикливается, чтобы добавить новое имя. – somin

+0

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

Смежные вопросы