In Jetpack Compose Glimmer ist die Icon Komponente ein UI-Element zum
Rendern einfarbiger Symbole. Symbole werden intelligent getönt und skaliert, so
dass sie lesbar bleiben und visuell mit dem GlimmerTheme übereinstimmen.
Größen
Standardmäßig haben Symbole die Größe, die von LocalIconSize bereitgestellt wird. Sie können aber auch
die drei Symbolgrößen verwenden, um eine bestimmte Größe festzulegen. Diese Größen werden standardmäßig auch für die folgenden Kontexte verwendet:
| Größentoken | Standardnutzung |
|---|---|
|
Für Standardlistenelemente oder kleine Chips. |
|
Für eigenständige Symbole und Titelchips. |
|
Für Komponenten mit hoher Gewichtung wie Karten. |
Symbolquellen
Symbole können ImageVector, ImageBitmap oder Painter als
Quelle akzeptieren. Wenn Sie eigene Symbole definieren, verwenden Sie nach Möglichkeit ImageVector, um eine scharfe Darstellung in jeder Größe auf Displaybrillen zu gewährleisten.
Farbe und Tönung
- Automatische Tönung: Die Farbe des Symbols wird anhand von
LocalContentColorbestimmt, das von der übergeordneten OberflächeLocalContentColorbereitgestellt wird, z. B.surfaceoderButton. - Manuelle Tönung: Verwenden Sie den
tintParameter, um eine bestimmte Farbe anzuwenden. - Mehrfarbige Assets: Für Symbole, die nicht getönt werden sollen (wie
mehrfarbige Markenlogos), legen Sie
tint = Color.Unspecifiedfest. - Allgemeine Bilder: Für Fotos oder allgemeine Bilder, die nicht den Regeln für Symbolgröße und -tönung entsprechen, verwenden Sie stattdessen das Standard
androidx.compose.foundation.Image.
Beispiel: Einfaches Symbol auf einer Oberfläche
Mit dem folgenden Code wird ein Symbol erstellt, das sich auf einer kreisförmigen Oberfläche befindet. Dabei wird die Primärfarbe des Designs verwendet:
@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), ) } } }
Beispiel: Symbole mit unterschiedlichen Größen
Der folgende Code zeigt die verschiedenen Symbolgrößen:
@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)) } }
Wichtige Informationen zum Code
- Die Größe der einzelnen Symbole wird mit
GlimmerTheme.iconSizesund einem Modifikator angepasst. Für Symbole ist der StandardwertGlimmerTheme.iconSizes.medium. Verwenden Sie diese Größen anstelle von fest codierten Werten, um die Konsistenz in der gesamten UI zu gewährleisten. - Stellt für jedes Symbol eine lokalisierte
contentDescriptionbereit. Geben Sie diese Beschreibungen immer an, es sei denn, das Symbol ist rein dekorativ.