В Jetpack Compose Glimmer компонент Icon представляет собой элемент пользовательского интерфейса для отображения одноцветных значков. Значки интеллектуально обрабатывают изменение цвета и масштабирование, чтобы оставаться читаемыми и визуально соответствовать теме GlimmerTheme .
Размеры
Хотя по умолчанию размер значков определяется параметром LocalIconSize , вы также можете использовать три предоставленных размера значков для установки конкретного размера. Эти размеры также используются по умолчанию в следующих контекстах:
| Размер токена | Использование по умолчанию |
|---|---|
| Для стандартных позиций в списке или мелких деталей. |
| Для отдельных значков и заголовков. |
| Для элементов, на которые делается большой акцент, таких как карточки. |
Источники иконок
Иконки могут принимать в качестве источника ImageVector , ImageBitmap или Painter . При определении собственных иконок по возможности используйте ImageVector , чтобы обеспечить четкое отображение в любом масштабе на экранах.
Цвет и тонирование
- Автоматическое изменение цвета : Цвет значка определяется на основе
LocalContentColorLocalContentColorпредоставленного родительской поверхностью, например,surfaceилиButton. - Ручная тонировка : используйте параметр
tint, чтобы применить определенный цвет. - Многоцветные элементы : Для значков, которые не должны быть окрашены (например, многоцветные логотипы брендов), установите
tint = Color.Unspecified. - Универсальные изображения : Для фотографий или универсальных изображений, которые не соответствуют правилам изменения размера и оттенка значков, используйте вместо них стандартный объект
androidx.compose.foundation.Image.
Пример: Базовая иконка
Следующий код создает простую иконку:
@Composable fun IconSample() { Icon(FavoriteIcon, contentDescription = "Localized description") }
Пример: Цветные иконки
Следующий код создает цветную иконку, используя основной цвет темы:
@Composable fun ColoredIconSample() { Icon( FavoriteIcon, tint = GlimmerTheme.colors.primary, contentDescription = "Localized description", ) }
Пример: Иконки разных размеров
Следующий код создает значок, который изменяется до определенного размера:
@Composable fun SizedIconSample() { Icon( FavoriteIcon, contentDescription = "Localized description", modifier = Modifier.size(GlimmerTheme.iconSizes.large), ) }
Основные моменты, касающиеся кода.
- Размер значка настраивается с помощью параметра
GlimmerTheme.iconSizesс модификатором. Для значков значение по умолчанию —GlimmerTheme.iconSizes.medium. Используйте эти размеры вместо жестко заданных значений, чтобы обеспечить единообразие пользовательского интерфейса. - Предоставляет локализованное
contentDescriptionдля значка. Эти описания следует указывать всегда, если значок не является чисто декоративным.