Комментарии 27
Спасибо, большое. То, что надо!
+1
Сразу вспоминается «коллега» Picasso: square.github.io/picasso
0
«нежнейший лру кэш» — убило)
+3
Дайте угадаю — вместо всех картинок чёрные квадраты рисуются?
+6
Не нашел в коде поддержки EXIF Orientation. Вероятно, кому-то эта опция будет полезной.
0
Использую Glide, пока все устраивает. Я склонен верить гуглу, который её порекомендовал. Возможно, «нежнейший лру кэш» меня будет прельщать, когда мне будет за 30, но тогда и android-а может уже не быть :D
0
Интересно попробовать… Какая минимальная поддерживаемая версия API?
И залить бы в MAVEN…
И залить бы в MAVEN…
0
Не совсем понял, в чем преимущества над уже хорошо зарекомендовавшими себя решениями (fresco, UIL, Picasso)? В минимализме или еще в чем-то? Хотелось бы услышать развернутое сравнение с конкурентами: наличие/отсутствие фич, перфоманс, размер и пр.
0
Все библиотеки работают по устоявшейся схеме, которая выглядит примерно так:
Принципиальных отличий между ними нет, поэтому можно говорить только о каких то нюансах и субъективном мнении.
— fresco
Во первых у меня предвзятое отношение к продуктам данной компании. Фейсбук, пожалуй единственное приложение, которое умудряется глючить и лагать среди равных себе по охвату аудитории на моем нексус 5. Сообщение «Отстутствует соедениение» — стало настолько привычным, что я уже даже не кликаю по уведомлениям. Вероятность корректного получения токена при интеграции с фесбук, была вычисленна экспериментально и составляет 90%. Т.е. в 1 из 10 случаев вместо токена вернется ничто. Но если отбросить предвзятость:
+ поддержка webp и gif из коробки
+ хитрое выделение памяти
— совершенно некастомизируемо.
— исходный код нечитаем
Используется кастомная вьюха для рендеринга битмапов, которая хоть и является наследницей imageview — не переиспользуема со стороны. Например в процессе загрузки вам нужно рисовать кружок с процентом загрузки как принять в iOs — вы не можете тупо написать setBitmap вьюхе, потому что это сломает их процесс: frescolib.org/docs/gotchas.html#_
— picasso
+ простой интерфейс
— слабая функциональность
— неэффективное управление памятью ( не используются inBitmaps)
Подходит только для примитивных задач. Нельзя ни поставить загрузку на паузу, ни задать размеры кешей, да практически ничего нельзя. Насколько я понял проект заброшен и Джейк Вартсон переключился на Glide
— UIL
+ хороший компромисс между функциональностью и простотой
— неэффективное управление памятью (предположительно)
Неплохое развитие идей Федора Власова, если честно глубоко не смотрел, потому что оригинал Федора мне ближе, его легче было подстраивать под себя
Вобщем я позиционирую малевича как нечто среднее между uil и picasso. По хорошему надо бы дописать функционала, не изгадив простоту, и будет неплохая библиотека. Пока она чуть лучше picasso, но уступает по функционалу и количеству фич всем остальным.
Принципиальных отличий между ними нет, поэтому можно говорить только о каких то нюансах и субъективном мнении.
— fresco
Во первых у меня предвзятое отношение к продуктам данной компании. Фейсбук, пожалуй единственное приложение, которое умудряется глючить и лагать среди равных себе по охвату аудитории на моем нексус 5. Сообщение «Отстутствует соедениение» — стало настолько привычным, что я уже даже не кликаю по уведомлениям. Вероятность корректного получения токена при интеграции с фесбук, была вычисленна экспериментально и составляет 90%. Т.е. в 1 из 10 случаев вместо токена вернется ничто. Но если отбросить предвзятость:
+ поддержка webp и gif из коробки
+ хитрое выделение памяти
— совершенно некастомизируемо.
— исходный код нечитаем
Используется кастомная вьюха для рендеринга битмапов, которая хоть и является наследницей imageview — не переиспользуема со стороны. Например в процессе загрузки вам нужно рисовать кружок с процентом загрузки как принять в iOs — вы не можете тупо написать setBitmap вьюхе, потому что это сломает их процесс: frescolib.org/docs/gotchas.html#_
— picasso
+ простой интерфейс
— слабая функциональность
— неэффективное управление памятью ( не используются inBitmaps)
Подходит только для примитивных задач. Нельзя ни поставить загрузку на паузу, ни задать размеры кешей, да практически ничего нельзя. Насколько я понял проект заброшен и Джейк Вартсон переключился на Glide
— UIL
+ хороший компромисс между функциональностью и простотой
— неэффективное управление памятью (предположительно)
Неплохое развитие идей Федора Власова, если честно глубоко не смотрел, потому что оригинал Федора мне ближе, его легче было подстраивать под себя
Вобщем я позиционирую малевича как нечто среднее между uil и picasso. По хорошему надо бы дописать функционала, не изгадив простоту, и будет неплохая библиотека. Пока она чуть лучше picasso, но уступает по функционалу и количеству фич всем остальным.
+1
Решил заюзать Малевича. Всё вроде круто, но есть 4 нюанса:
1. Иногда появляется чёрный квадрат (Малевич?!) на фоне скруглённого изображения
2. Непонятно как использовать дисковый кэш и как он работает (хочу хранить аватар юзера локально)
3. Либа каждый раз ресайзит изображение из ресурсов (создаёт тормоза), хотя ожидаешь что подтянет из кэша
4. Было бы неплохо залить в Мавен
1. Иногда появляется чёрный квадрат (Малевич?!) на фоне скруглённого изображения
2. Непонятно как использовать дисковый кэш и как он работает (хочу хранить аватар юзера локально)
3. Либа каждый раз ресайзит изображение из ресурсов (создаёт тормоза), хотя ожидаешь что подтянет из кэша
4. Было бы неплохо залить в Мавен
0
Жду каментов автора)
0
Привет,
1 — возможно дело в незаданном .LoadingImage(R.drawable.some) // preloader image or recource Например прозрачный пиксель можно задать
2 — это обычный лру. сперва читает из памяти, если нет — с диска (и сразу в память), если нет по сети и тп Настройки кеша общие на инстанс малевича
3 — точно не уверен, возможно ресурсы не кешируются либо слишком большие картинки/маленький кеш. Можно вкл дебаг режим и посмотреть логи
1 — возможно дело в незаданном .LoadingImage(R.drawable.some) // preloader image or recource Например прозрачный пиксель можно задать
2 — это обычный лру. сперва читает из памяти, если нет — с диска (и сразу в память), если нет по сети и тп Настройки кеша общие на инстанс малевича
3 — точно не уверен, возможно ресурсы не кешируются либо слишком большие картинки/маленький кеш. Можно вкл дебаг режим и посмотреть логи
0
1. Прозрачный пиксель для .LoadingImage не помог. Чёрный квадрат видно постоянно на одном изображении, на других появляется время от времени.
0
5. Мелкий аватар (40dp) почему-то не кешируется на диск и при первом обращении выкачивает изобажение с сервера. То же самое изображение (тот же URL) в других бОльших размерах кешится нормально.
0
Что делают методы?
clearCache
flushCache
closeCache
0
У меня проблема с качеством мелких картинок (размер 30dp). Имею URL на картинку юзера 200×200 и мне надо использовать её в приложении в разных размерах. Крупные картинки (80dp) выглядят нормально, а мелкие замылены. Выставил cacheParams.compressQuality = 100, но не помогло. Что делать?
0
возможно берется картинка из кеша
там есть параметры управления кешом, и довольно гибкие, я бы попробовал включить для мелких мемори кеш, для крупных дисккеш, чтобы разделить кеши, но не уверен что дело в этом. сложно понять по описанию что происходит
github.com/recoilme/malevich#advansed-usage
там есть параметры управления кешом, и довольно гибкие, я бы попробовал включить для мелких мемори кеш, для крупных дисккеш, чтобы разделить кеши, но не уверен что дело в этом. сложно понять по описанию что происходит
github.com/recoilme/malevich#advansed-usage
0
Опишу подробнее. По URL получаю картинку JPG 200×200px. Параметры Малевича
ImageCacheParams
использую те, что по умолчанию. Мне нужно показать скруглённую картинку, это делаю через .imageDecodedListener —> Malevich.Utils.getSquaredCircleBitmap
. В результате вывод этой картинки в 80dp выглядит чётко, а та же самая картинка, запрошенная с размером 30dp, выглядит замыленой. Как я понимаю, если включен кэш, то при первом запросе картинка ложится в него в оригинальном размере, а дальше Малевич отдаёт её в нужном размере, без скачивания — возможно где-то в этом месте происходит замыл?0
Fix:
(int) getResources().getDimension(30dp)
возвращает размер 78 точек, что видимо мало для чёткого отображения картинки в 30dp, а вот 45dp (что для моего экрана равно 118 точек), вполне достаточно и картинка выглядит чётко.0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Malevich