Android
|
|
1 | |
Мини чат, тонкости разработки05.04.2016, 16:33. Показов 1470. Ответов 18
Метки нет (Все метки)
Например приложение Viber и его аналоги..
Как в них реализован чат? А именно "ListView" с сообщениями. Допустим БД SQLlite с сообщениями (текст, ссылки на картинки и звук и т.п.), звук и картинки как файл в SD как там реализована загрузка сообщений в "ListView"? так чтобы не вылетал OutOfMemory и всякая такая бяка..
0
|
05.04.2016, 16:33 | |
Ответы с готовыми решениями:
18
Мини-Чат Мини-чат на флеш Голосовой мини чат Мини-чат через ftp |
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
05.04.2016, 18:03 | 3 |
YuraAAA, видимо, имеются в виду JSON с диалогами, фотками, видео. Хотя да, они пережимаются в уменьшенные изображения.
1
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
05.04.2016, 20:15 | 5 |
YuraAAA, да, я это и имел в виду. Хотя сам Viber грузит частями, начиная с конца. Ну и, понятное дело, всё решают потоки (хоть для GSON, хоть для JsonReader).
0
|
Android
|
|
06.04.2016, 14:23 [ТС] | 7 |
т.е.
1) сохраняем 2 изображения (1- оригинал, 2 уменьшенную копию) - в "ListView" загружаем уменьшенную копию изображения и по нажатию открываем оригинал?.. 2) Adapter для "ListView" создается сразу со всеми сообщениями? или limit + offset? 3) с сервера получается тоже нужно сообщения получать limit + offset..!?
0
|
06.04.2016, 15:20 | 8 |
Сообщение было отмечено ILNAR_93 как решение
Решение
ILNAR_93,
На "крутых" серверах используются медиа транскодеры. Они пережимают оригинальное изображение.
Если нет такой возможности, то надо при загрузке ресайзить изображение до превью размера. limit конечно Ага. Т.е. загрузили сначала, например, 50 сообщений. Долистали до конца списка - попросили у сервера ещё 50, с оффсетом.
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
06.04.2016, 15:55 | 9 |
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
06.04.2016, 23:29 | 11 |
YuraAAA, ListView-то - да, но в адаптер можно по глупости засунуть весь массив
0
|
Android
|
|
07.04.2016, 08:12 [ТС] | 12 |
Наверное все загружаемые сообщения сохраняем в SQLlite и от туда уже загружаем limit + offset.
- Пока крутим вниз загружаем новые при этом удаляя старые (первые) записи.. И когда вверх листаем в обратном порядке.. - правильно понимаю?
0
|
Android
|
|
07.04.2016, 11:59 [ТС] | 14 |
Получается только добавляем по мере необходимости(когда листаем вниз - listview), а верхние сообщения из адаптера удалять не надо?
1) Если пока мы листаем вниз у нас в адаптер загрузится очень много сообщений, что будет? 2) В адаптер же сразу 500 и больше сообщений не засовываем? Если есть время объясни по подробнее пжлста) p.s. пока не понимаю
0
|
Android
|
||||||
07.04.2016, 12:16 [ТС] | 16 | |||||
Я так понимаю что ООМ выходит не только когда в визуальной части много данных(например картинок), а когда в память загружено много.. В моем случае в коллекцию.. Или я чего-то не до понял и не знаю?
0
|
Android
|
|
07.04.2016, 15:45 [ТС] | 18 |
А как это происходит? Механизм какой? При прокрутке вниз подгружает по URI(или url)? Как? - может есть разжеванный пример?)
И получается все храниться как string (url), а только видимая часть загружена(картинки и т.п.)?
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
08.04.2016, 13:43 | 19 |
Сообщение было отмечено ILNAR_93 как решение
Решение
ILNAR_93, на SO есть множество примеров: http://stackoverflow.com/quest... n-listview. Советую следующие библиотеки: Fresco, Glide, Picasso.
1
|
08.04.2016, 13:43 | |
08.04.2016, 13:43 | |
Помогаю со студенческими работами здесь
19
мини чат под Ios Написать самый простой мини-чат Дополнительные инструменты (мини справки) для удобства разработки XAML Готовое решение "User Datagram Protocol Client" (UDP Client или Мини чат) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |