في مكتبة Jetpack Compose Glimmer، يمثّل المكوّن Icon عنصر في واجهة المستخدم لعرض أيقونات بلون واحد. تتعامل الرموز بذكاء مع التلوين وتغيير الحجم لتبقى مقروءة ومتسقة بصريًا مع GlimmerTheme.
الأحجام
مع أنّ الرموز تستخدم تلقائيًا الحجم الذي يوفّره LocalIconSize، يمكنك أيضًا استخدام أحجام الرموز الثلاثة المتوفّرة لضبط حجم معيّن. يتم أيضًا استخدام هذه الأحجام تلقائيًا في السياقات التالية:
| الرمز المميّز للحجم | سياسة الاستخدام التلقائية |
|---|---|
|
لعناصر القائمة العادية أو الشرائح الصغيرة |
|
بالنسبة إلى الرموز المستقلة وشرائح العناوين |
|
للمكوّنات التي تتطلّب تركيزًا عاليًا، مثل البطاقات |
مصادر الرموز
يمكن أن تقبل الرموز ImageVector أو ImageBitmap أو Painter كمصدر لها. عند تحديد الرموز الخاصة بك، استخدِم ImageVector حيثما أمكن لتعزيز العرض الواضح بأي حجم على نظارات العرض.
الألوان والتلوين
- التلوين التلقائي: يحدّد الرمز لونه استنادًا إلى
LocalContentColorالذي توفّره المساحة الرئيسيةLocalContentColorالتي توفّرها المساحة الرئيسية، مثل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مترجَمًا لكل رمز. يجب تقديم هذه الأوصاف دائمًا ما لم يكن الرمز تزيينيًا بحتًا.