2012-03-17 4 views
2

Итак, у меня есть приложение для Android, для которого я кодирую несколько тем (для разных фоновых рисунков для кнопок и т. Д.). У меня все упаковано и работает, но я обнаружил, что моя папка ресурсов становится невероятно громоздкой. Настолько, что это печатание на ногах - это тройной отпечаток стопы моего каталога исходного кода. Я проделал поиск в google (и здесь), но не нашел ничего подходящего. Я читал api docs, и я тоже возвращаюсь туда. Итак, вот что я ищу в ореховой оболочке:Доступ к внешним ресурсам

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

ответ

1

Очень простое решение было бы дать пользователю возможность загружать дополнительные темы прямо во внешнее хранилище (в основном, sd-card), если он хочет их использовать.

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

Многие известные Приложения на рынке также делают это именно так.

EDIT:

1: Ах, я вижу. Если вы хотите передать сторонние файлы тем в других apk, вам нужно использовать PackageManager. С его помощью вы можете получить список всех установленных приложений и, например, проверить, содержит ли packageName некоторую строку типа «.someapp.superdupertheme», а не доступ к ресурсам приложения с помощью функции getResourcesForApplication. Это не так просто, как с внешним хранилищем выше, и есть еще много вещей, которые нужно учитывать.

2: Чтобы избежать перечисления ваших внешних файлов в галерее Android, просто поместите в папку папку с именем «.nomedia», а сканер для мультимедиа Android проигнорирует ее.

+0

Я видел другие апки, которые имеют темы на рынке. На самом деле это то, что я ищу. Поэтому в моем основном приложении я бы создал каталог. Затем, когда выполняется apk apk, он будет хранить свои ресурсы в этой папке в собственной подкаталоге. Моя программа будет проверять, есть ли какие-либо вещи в этом каталоге, и если не перейти к настройкам темы по умолчанию. Спасибо, это то, что я ищу (не могу поверить, что я об этом не думал). Последняя часть моего вопроса, хотя, как вы повторяете подкаталоги и заполняете список на основе имен каталогов? – user1160756

+0

Я только подумал об одном вопросе, который, скорее всего, с этим подходом. Файлы .png будут отображаться в галерее пользователя apk. Для меня это огромный беспорядок. Я ненавижу захламленную галерею. Так что другие темы, которые я видел на рынке, нашли способ обойти это. Было бы здорово, если бы кто-то там сделал учебник по обработке этого типа проблемы. – user1160756

+0

Большое спасибо. Сегодня вечером я посмотрю на PackageManager, чтобы узнать, хочу ли я пропустить путь. Этот файл с именем .nomedia, это обычный файл без расширения? т. е. создать его на моем компьютере, щелкнуть правой кнопкой мыши> новый текстовый документ> «.nomedia» в качестве имени файла без расширения (.txt) – user1160756

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