Jetpack Compose Glimmer에서 Icon 구성요소는 단색 아이콘을 렌더링하기 위한 UI 요소입니다. 아이콘은 틴트와 크기 조절을 지능적으로 처리하여 GlimmerTheme과 시각적으로 일관되고 가독성을 유지합니다.
크기
아이콘은 기본적으로 LocalIconSize에서 제공하는 크기로 설정되지만 제공된 세 가지 아이콘 크기를 사용하여 특정 크기를 설정할 수도 있습니다. 이러한 크기는 다음 컨텍스트에서도 기본적으로 사용됩니다.
| 크기 토큰 | 기본 사용 정책 |
|---|---|
|
표준 목록 항목 또는 작은 칩의 경우 |
|
독립형 아이콘 및 제목 칩의 경우 |
|
카드와 같이 강조가 필요한 구성요소에 사용됩니다. |
아이콘 소스
아이콘은 ImageVector, ImageBitmap 또는 Painter을 소스로 사용할 수 있습니다. 자체 아이콘을 정의할 때는 가능한 경우 ImageVector를 사용하여 디스플레이 글라스에서 모든 크기로 선명하게 렌더링되도록 합니다.
색상 및 색조
- 자동 색조: 아이콘은 상위 서피스에서 제공하는
LocalContentColor(예:surface또는Button)에 따라 색상을 결정합니다.LocalContentColor - 수동 색조:
tint매개변수를 사용하여 특정 색상을 적용합니다. - 다색 애셋: 색조를 적용하면 안 되는 아이콘 (예: 다색 브랜드 로고)의 경우
tint = Color.Unspecified를 설정합니다. - 일반 이미지: 아이콘 크기 조정 및 색조 규칙을 따르지 않는 사진 또는 일반 이미지의 경우 표준
androidx.compose.foundation.Image을 대신 사용하세요.
예: 서피스 내 기본 아이콘
다음 코드는 테마의 기본 색상을 사용하여 원형 표면 내부에 배치된 아이콘을 만듭니다.
@Composable fun IconSampleUsage() { GlimmerLazyColumn( modifier = Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, ) { item { IconSizesSample() } item { Icon( FavoriteIcon, "Localized description", Modifier.surface( shape = CircleShape, color = GlimmerTheme.colors.primary, border = null, ) .padding(12.dp), ) } } }
예: 크기가 다른 아이콘
다음 코드는 다양한 아이콘 크기를 보여줍니다.
@Composable fun IconSizesSample() { val iconSizes = GlimmerTheme.iconSizes Column( verticalArrangement = Arrangement.spacedBy(20.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { Icon(FavoriteIcon, "Localized description", Modifier.size(iconSizes.small)) // medium is also the default size, defining explicitly for clarity Icon(FavoriteIcon, "Localized description", Modifier.size(iconSizes.medium)) Icon(FavoriteIcon, "Localized description", Modifier.size(iconSizes.large)) } }
코드에 관한 핵심 사항
- 각 아이콘의 크기는 수정자와 함께
GlimmerTheme.iconSizes를 사용하여 맞춤설정됩니다. 아이콘의 경우 기본값은GlimmerTheme.iconSizes.medium입니다. UI 전반에서 일관성을 유지하려면 값을 하드 코딩하는 대신 이러한 크기를 사용하세요. - 각 아이콘에 대해 현지화된
contentDescription를 제공합니다. 아이콘이 순전히 장식용이 아닌 한 항상 이러한 설명을 제공하세요.