Перейти к содержанию
Fire Monkey от А до Я
  • 0

Где хранить большое количество картинок?


Andrey Efimov

Вопрос

  • Модераторы

Допустим ситуацию:

 

Имеем 164 картинки (может быть больше. Размер примерно 128х128), данные картинки нужно добавить в приложение перед компиляцией apk-файла.

У всех картинок уже заданы разные имена, например по такой схеме:

10 картинок (фрукты) – имя = fruit_1..10
26 картинок (овощи) – имя = vegetables_1..26
и т.п.

при добавлении в Rad Studio необходимо сохранить эти имена, чтобы потом можно было по ним обращаться к картинкам.

В приложении, список имён хранится в ComboBox'е, также как и количество картинок для каждой категории.

 

Я вижу четыре варианта хранения:

  • StyleBook (минусы: неудобно добавлять по одной штуке, каждой картинке нужно присвоить имя)

     

  • Хранить в ресурсах (плюсы: можно добавить сразу все картинки. Минусы: нужно задать каждой картинке имя)

     

  • Задеплоить (главный минус: прописывать настройки (путь и т.п.) для каждого файла (Kikoma просветил меня, оказывается можно массово задавать конечный путь)) единственное что теперь смущает, так это куча файлов в окне для деплоя

     

  • Хранить все картинке в zip-архиве (плюсы: один файл, извлечь архив можно в любой момент) Это пока экспериментальный вариант, к нему я склоняюсь больше всего. Смысл данного варианта заключается в том что я запихну все картинки в один архив, сам архив в приложение, и когда придёт время извлеку все картинки по нужному пути, т.е. деплой в рантайме :) Минусы: Размер приложения в конечном итоге, после извлечения архива будет чуток больше.

     

Картинки у меня в png формате, к ним я применяю сжатие при помощи PNGGauntlet, чтобы уменьшить размер.

 

 

У кого есть ещё какие-нибудь варианты?

 

 

Суть вопроса заключается в том, чтобы найти максимально простой и наименее затратный по времени вариант добавления картинок. Чтобы не задавать новые имена, а использовать уже существующие, чтобы можно было в один клик добавить все картинки, чтобы можно было в один клик прописать путь (если нужно) для всех картинок.

Изменено пользователем Andrey Yefimov
обновил 3 пункт
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • StyleBook - Я бы создал дополнительное приложение для добавления картинок в StyleBook программно, и потом сохранил в файл (метод StyleBook.WriteResourses). Сам не пользовался, но копал бы в этом направлении
  • Хранить в ресурсах - Если воспользоваться вариантом Сысоева Максима из этой темы, то опять таки быстрее было бы написать программку для создания файла ресурса resource.rc из картинок в определенной папке. Да и в будущем такая программка обязательно понадобится.
  • Задеплоить - Добавить большое кол-во файлов и назначить им путь - не проблема, В дальнейшем работать с этим списком файлов не удобно. Я бы предложил разработчикам еще и фильтр туда вставить, было бы удобнее. Ну а пока только сортировкой по колонке пользуюсь, и то она после каждого действия слетает. (Кстати куда про найденные баги писать то можно? А то я их на листочек себе записываю)
  • zip архив - аналог предыдущему пункту "задеплоить". APK - сам по себе zip архив, так что в итоге удобство сведется к не работать с большим списком в деплой менеджере, но дополнительной операции распаковки на устройстве (ведь при установке пользователь терпимо ждет и не спорит с иногда "долгим" процессом установки, а вот в процессе работы с приложением... ему это уже не нравится

Чтобы принять окончательное решение, надо учесть будут ли добавляться картинки программно или только с обновлением apk? Как будут использоваться картинки в приложении и как лучше организовать к ним доступ для наилучшего быстродействия? Ну а самое главное программа создается для пользователя, поэтому чтобы пользователь был доволен (в контексте данной темы самый главный показатель для пользователя быстродействие работы программы)

Изменено пользователем Kikoma
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...