در Jetpack Compose Glimmer، کامپوننت Icon یک عنصر رابط کاربری برای رندر کردن آیکونهای تک رنگ است. آیکونها به طور هوشمندانه رنگآمیزی و مقیاسبندی را مدیریت میکنند تا خوانا و از نظر بصری با GlimmerTheme سازگار باقی بمانند.
اندازهها
در حالی که آیکونها به طور پیشفرض به اندازهای که LocalIconSize ارائه میدهد، تنظیم میشوند، میتوانید از سه اندازه آیکون ارائه شده برای تنظیم یک اندازه خاص نیز استفاده کنید. این اندازهها به طور پیشفرض برای زمینههای زیر نیز استفاده میشوند:
| توکن اندازه | استفاده پیشفرض |
|---|---|
| برای اقلام استاندارد لیست یا تراشههای کوچک. |
| برای آیکونهای مستقل و چیپهای عنوان. |
| برای اجزای با تأکید بالا مانند کارتها. |
منابع آیکون
آیکنها میتوانند ImageVector ، ImageBitmap یا Painter به عنوان منبع خود بپذیرند. هنگام تعریف آیکنهای خود، در صورت امکان ImageVector استفاده کنید تا رندرینگ واضحی را در هر مقیاسی روی عینکهای نمایشگر ارائه دهید.
رنگ و رنگآمیزی
- رنگ خودکار : آیکون رنگ خود را بر اساس
LocalContentColorLocalContentColorشده توسط سطح والد، مانند یکsurfaceیاButton، تعیین میکند. - رنگآمیزی دستی : از پارامتر
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است. از این اندازهها به جای مقادیر ثابت در کدنویسی استفاده کنید تا هماهنگی در رابط کاربری شما حفظ شود. - برای هر آیکون، یک
contentDescriptionبومیسازیشده ارائه میدهد. همیشه این توضیحات را ارائه دهید، مگر اینکه آیکون صرفاً تزئینی باشد.