0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Отображение картинок посредством<strong>делегатов</strong>имеет ряд плюсов. Во-первых, адаптер освобождается от логики, которой в адаптере быть и не должно. Во-вторых, разработчик абстрагируется от способа загрузки и обработки изображений, поэтому в любой момент может почти без боли заменить Glide на что-либо другое. В-третьих, появляется возможность тестировать, как отображается картинка нужного типа. В-четвертых, такой подход является, в конце концов, просто очень удобным. Итак, приступим.</p>
1
<p>Отображение картинок посредством<strong>делегатов</strong>имеет ряд плюсов. Во-первых, адаптер освобождается от логики, которой в адаптере быть и не должно. Во-вторых, разработчик абстрагируется от способа загрузки и обработки изображений, поэтому в любой момент может почти без боли заменить Glide на что-либо другое. В-третьих, появляется возможность тестировать, как отображается картинка нужного типа. В-четвертых, такой подход является, в конце концов, просто очень удобным. Итак, приступим.</p>
2
<p>Давайте создадим делегат, который станет генерировать изображение из 2-х символов. Первое, что надо сделать, - определить требования к этому делегату. Конечно же, он должен уметь настраивать изображение и, разумеется, отображать буквы.</p>
2
<p>Давайте создадим делегат, который станет генерировать изображение из 2-х символов. Первое, что надо сделать, - определить требования к этому делегату. Конечно же, он должен уметь настраивать изображение и, разумеется, отображать буквы.</p>
3
<p>Наша модель будет выглядеть так:</p>
3
<p>Наша модель будет выглядеть так:</p>
4
<p>Чтобы настроить фон, воспользуемся<strong>ImageTransformations</strong>.</p>
4
<p>Чтобы настроить фон, воспользуемся<strong>ImageTransformations</strong>.</p>
5
<p>Теперь можно переходить к генерации битмапы. Воспользуемся оберткой<strong>TextDrawable</strong>, внутри которой отрисовка осуществляется посредством Canvas. Потом битмапу надо обработать с последующей установкой в<strong>ImageView</strong>.</p>
5
<p>Теперь можно переходить к генерации битмапы. Воспользуемся оберткой<strong>TextDrawable</strong>, внутри которой отрисовка осуществляется посредством Canvas. Потом битмапу надо обработать с последующей установкой в<strong>ImageView</strong>.</p>
6
<p>Благодаря применению экстеншена, реализация делегата займет всего пару строк. Давайте посмотрим, как он функционирует.</p>
6
<p>Благодаря применению экстеншена, реализация делегата займет всего пару строк. Давайте посмотрим, как он функционирует.</p>
7
<p>Вариант № 1, где заданы базовые настройки:</p>
7
<p>Вариант № 1, где заданы базовые настройки:</p>
8
<p>Вариант № 2 с добавлением трансформации скругления:</p>
8
<p>Вариант № 2 с добавлением трансформации скругления:</p>
9
<p>Вариант № 3 с поворотом картинки. Нет никаких проблем в отображении иконки аватара в нужном виде с учетом дизайна:</p>
9
<p>Вариант № 3 с поворотом картинки. Нет никаких проблем в отображении иконки аватара в нужном виде с учетом дизайна:</p>
10
<p><em><a>Источник</a></em></p>
10
<p><em><a>Источник</a></em></p>
11
11