HTML Diff
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