Трансформация

Както знаете, известният художник Пабло Пикасо обичаше котки. Има снимка, потвърждаваща любовта му.

пример

Художникът рисува няколко картини с котка. Един от тях.

трансформация

Има и библиотекаPicasso, предназначена за асинхронно зареждане на изображения на котки от мрежата, ресурсите или файловата система, тяхното кеширане и показване.

В Android Studio пишем зависимостта в Gradle (проверете номера на най-новата версия).

Сега има нова версия на сайта с нов пакетимплементация 'com.squareup.picasso:picasso:2.71828', който е междинна опция за преминаване към 3.x клон. Някои извиквания на методи обаче са променени. Бъди внимателен.

Ето колко лесно е да изтеглите изображение от мрежата:

При изтегляне изображението се кешира и когато се повтори заявка за изтегляне, библиотеката може да получи изображението от кеша, вместо да го изтегля от интернет, което ускорява приложението. Ако кешът е пълен или изтрит от потребителя, картината ще бъде изтеглена отново от мрежата. Много удобно.

Ако съхранявате големи снимки в ресурси или на външно устройство, препоръчително е да използвате отделен процес за зареждане. Библиотеката вече е конфигурирана да работи в асинхронен режим, така че можете да я използвате и в тези случаи.

Не забравяйте за библиотечния методfit(), който намалява размера на изображението, преди да го постави вImageView. Това е полезно за спестяване на ресурси, ако наистина се нуждаете от малка снимка, а не от оригинала.

Трансформация

Библиотеката има специален методtransform()за манипулиране на изображения. Трябва да създадете своя собствена реализация и да я предадете на метода. Например уебсайтът на програмиста предоставя пример за изрязване на изображение, когатоот най-малката страна се създава квадратно изображение.

Първо се създава отделен клас с интерфейсаTransformation, който изисква внедряването на два методаtransform()иkey().

За по-голяма яснота нека поставим два компонентаImageViewи да видим резултата след натискане на бутона.

изображение

Друг пример за трансформация е повторното оцветяване на изображение. Android 5.0 представи възможността за преоцветяване на икони с вградени инструменти. За по-стари устройства можете да използвате библиотеката (взета от тук). Нека създадем нов клас:

Пробваме една и съща картина.

трансформация

изображение

Ако зададете нулев радиус, размерите на изображението ще се използват за изчисляване на необходимите размери.

изображение

Техниката, използвана в примера, не е напълно ефективна. За такива цели се препоръчва използването на шейдъри. Пренаписан пример за клас.

Този пример използва празен конструктор без параметри, който е еквивалентен на стойността 0 от предишния пример. Можете да подобрите примера, като добавите възможност за указване на радиус, както е реализирано в този пример.

Нови възможности

Тази статия описва новите функции за версия 2.4.

Сега можете да вградите свои собствени манипулатори на заявки, ако използвате нестандартна схема вместо http, res и т.н.

Имаше възможност за управление на приоритетите за заявки за изтегляне на някои изображения преди други.

За да тествам библиотеката в бойни условия, написах приложение за Котките на Василий Ложкин. Доволен от резултата.