Jetpack Compose Glimmer'da Icon bileşeni, tek renkli simgeleri oluşturmak için kullanılan bir kullanıcı arayüzü öğesidir. Simgeler, renk tonunu ve ölçeklendirmeyi akıllıca yönetir. Böylece okunabilirliğini ve GlimmerTheme ile görsel tutarlılığını korur.
Boyutlar
Simgeler varsayılan olarak LocalIconSize tarafından sağlanan boyutta olsa da belirli bir boyut ayarlamak için sağlanan üç simge boyutunu da kullanabilirsiniz. Bu boyutlar, aşağıdaki bağlamlarda da varsayılan olarak kullanılır:
| Boyut jetonu | Varsayılan kullanım |
|---|---|
|
Standart liste öğeleri veya küçük çipler için. |
|
Bağımsız simgeler ve başlık çipleri için. |
|
Kartlar gibi çok vurgulu bileşenler için. |
Simge kaynakları
Simgeler kaynak olarak ImageVector, ImageBitmap veya Painter öğesini kabul edebilir. Kendi simgelerinizi tanımlarken, ekran gözlüklerinde her ölçekte net görüntülemeyi desteklemek için mümkün olduğunda ImageVector kullanın.
Renk ve Tonlama
- Otomatik renk tonu: Simge, üst yüzey tarafından sağlanan
LocalContentColordeğerine göre rengini belirler. Örneğin,surfaceveyaButton.LocalContentColor - Manuel Renklendirme: Belirli bir rengi uygulamak için
tintparametresini kullanın. - Çok Renkli Öğeler: Renklendirilmemesi gereken simgeler (ör. çok renkli marka logoları) için
tint = Color.Unspecifieddeğerini ayarlayın. - Genel Resimler: Simge boyutlandırma ve renklendirme kurallarına uymayan fotoğraflar veya genel resimler için standart
androidx.compose.foundation.Imagesimgesini kullanın.
Örnek: Bir yüzeydeki temel simge
Aşağıdaki kod, temanın birincil rengini kullanarak dairesel bir yüzeyin içine yerleştirilmiş bir simge oluşturur:
@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), ) } } }
Örnek: Farklı boyutlarda simgeler
Aşağıdaki kodda farklı simge boyutları gösterilmektedir:
@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)) } }
Kodla ilgili önemli noktalar
- Her simgenin boyutu, değiştiriciyle birlikte
GlimmerTheme.iconSizeskullanılarak özelleştirilir. Simgeler için varsayılan değerGlimmerTheme.iconSizes.medium'dir. Kullanıcı arayüzünüzde tutarlılığı korumak için değerleri sabit kodlamak yerine bu boyutları kullanın. - Her simge için yerelleştirilmiş bir
contentDescriptionsağlar. Simge tamamen dekoratif amaçlı olmadığı sürece bu açıklamaları her zaman ekleyin.