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

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


lev.vorobyov

Вопрос

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

Ссылка на комментарий

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

  • 0

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

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

 

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

Ссылка на комментарий
  • 0
  • Модераторы

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

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

 

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

Ссылка на комментарий
  • 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 пользователей онлайн

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