Создаем делегат для генерируемой картинки | OTUS

Создаем делегат для генерируемой картинки

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

Давайте создадим делегат, который станет генерировать изображение из 2-х символов. Первое, что надо сделать, — определить требования к этому делегату. Конечно же, он должен уметь настраивать изображение и, разумеется, отображать буквы.

Наша модель будет выглядеть так:

Screenshot_1-1801-0bc869.png

Чтобы настроить фон, воспользуемся ImageTransformations.

Теперь можно переходить к генерации битмапы. Воспользуемся оберткой TextDrawable, внутри которой отрисовка осуществляется посредством Canvas. Потом битмапу надо обработать с последующей установкой в ImageView.

Screenshot_2-1801-f45f79.png

Благодаря применению экстеншена, реализация делегата займет всего пару строк. Давайте посмотрим, как он функционирует.

Вариант № 1, где заданы базовые настройки:

image12_1_1-1801-2eee4f.jpg

Вариант № 2 с добавлением трансформации скругления:

image7_2_1-1801-baccc0.jpg

Вариант № 3 с поворотом картинки. Нет никаких проблем в отображении иконки аватара в нужном виде с учетом дизайна:

image5_1_1_1-1801-205656.jpg

Источник

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто