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

просмотр картинок - Delphi FireMonkey


lev.vorobyov

Вопрос

Опубликовано

Доброе время суток. Как создать апп под адроид для просмотра рисунков? Рисунки хранятся на удаленно компе.
Ни как не могу решить, как лучше сделать. Копировать картинки в SQLLite или же на память телефона, как посоветуете? Плюс столкнулся с проблемкой, ни могу открыть определенную папку в галерее. Пробовал TakePhotoFromLibraryAction1 - но это окрывает галерею для выбора фаила. 
Заранее благодарен за вашу помощь

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

  • 0
Опубликовано

Как понять открыть определенную папку?

указываешь путь к папке и получаешь список файлов, дальше загружаешь его куда нить в UI

 

а на счёт хранения, смотря какого размера файлы и их кол-во

  • 0
Опубликовано (изменено)

 

Фаилов около 300. Размер по 40-70 кбайт

тогда желательно базу.

 

а как часто они будут использоваться?

 

Можно сказать постоянно. Это что то вроде справочника товаров, рядом с каждым должна показываться картинка

Изменено пользователем lev.vorobyov
  • 0
  • Модераторы
Опубликовано

храни лучше на диске. так проще их открывать будет а не тащить из базы. из базы путь можно только к ней получить. 

я бы наоборот хранил в БД, лучше один файлик чем 300.

плюс всегда можно хранить настройки и прочие данные, которые в будущем могут возникнуть

  • 0
Опубликовано

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

  • 0
Опубликовано

зачем пихать картинки в базу? это не нормальное решение. без вакума база будет расти. в базе оптимально хранить ссылку в инет и ссылку на файл в памяти. файлы на диске. база не пухнет. работает быстрее.

  • 0
Опубликовано

делал подобную загрузку картинки загружал на телефон при открытии списка товаров  или категории они загружались только 1 раз при повторном обращении проверял есть ли картинка если нет  загружал с сервера, скорость работы в разы  выше чем когда загрузка идет раз за разом 

  • 0
  • Модераторы
Опубликовано (изменено)

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

 

В вашем случае:

Фаилов около 300. Размер по 40-70 кбайт

 

300 x 70 = 21 000 КБ = 20,51 МБ

Значит к разовому (при каждом запуске приложения) потреблению оперативы прибавляем ещё 20 МБ. В целом это нормально и в обоих случаях, доступ к картинкам будет достаточно быстрый, т.к. сами по себе, картинки маленькие. В моём случае было 25МБ, картинки были больше и для ускорения загрузки, я кэшировал их на диске, т.е. если картинку хотя бы раз запросили, то она выгружается из базы на диск и в дальнейшем, при запросах, проверяется сначала на диске, а потом уже лезет в базу, если картинка не найдена в кэше.

 

а вообще, как я уже писал в одной из статей:

 
Хранить их можно где угодно:
  1. В ресурсах приложения «Resources and Images…»
  2. В файле базы данных, используя BLOB
  3. В папке с проектом, т.е. задеплоить все картинки
  4. В архиве, который лежит в папке с проектом 

 

 

Везде свои плюсы и свои минусы...

 

Как то так...

 

p.s. Примерно вот так делается через файл ресурсов (ссылки на мой блог(не реклама:)): Игра "Одинаковые картинки" и Пишем простейшую игру (головоломку) для детей

p.s.2. По поводу приложения работающего с картинками в базе, ссылок не дам, т.к. это был коммерческий заказ со стороны...

Изменено пользователем Andrey Efimov
  • 0
Опубликовано

Рябят еще такой вопросик очень интересует. На PC стоит база (где храниться инфа), мне нужно ее как то получать и записывать в SQLLite на андроиде или же отправлять записи на PC  в основную базу. Как лучше посоветуете это реализовать? Думаю попробовать на через средства Delphi на андроиде  (TSQLConnection+TProviderConnection)  и на PC(DataSnapServer)

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

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