Glance یک API برای مدیریت تم رنگی ارائه می دهد. برای سایر ویژگیهای سبک، مانند TextStyle
، متغیرهای سطح بالا را اعلام کنید.
رنگ ها را اضافه کنید
Glance پیاده سازی رنگ مواد را خارج از جعبه ارائه می دهد. برای استفاده از تم داخلی، همانطور که در مثال زیر نشان داده شده است، سطح بالای قابل ترکیب خود را با GlanceTheme
بپیچید.
در دستگاههایی که از رنگهای پویا پشتیبانی میکنند، این موضوع از رنگهای پلتفرم خاص کاربر مشتق شده است. در دستگاههای دیگر، این به موضوع اصلی Material برمیگردد. از GlanceTheme.colors
برای استایل دادن به رنگهای تم پیچیده شده استفاده کنید. شما می توانید از این مقادیر از موضوع در هر جایی که به رنگی نیاز است استفاده کنید.
override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme { MyContent() } } } @Composable private fun MyContent() { Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
برای سفارشی کردن تم، میتوانید colors
به GlanceTheme
منتقل کنید. Glance کتابخانه قابلیت همکاری androidx.glance:glance-material
برای Material 2 و androidx.glance:glance-material3
برای Material 3 را پشتیبانی می کند.
برای مثال، همانطور که در قطعه زیر نشان داده شده است، رنگ های مواد موجود برنامه خود را به ColorProviders
API برای ایجاد یک طرح رنگی Glance ارائه دهید:
// Remember, use the Glance imports // import androidx.glance.material3.ColorProviders // Example Imports from your own app // import com.example.myapp.ui.theme.DarkColors // import com.example.myapp.ui.theme.LightColors object MyAppWidgetGlanceColorScheme { val colors = ColorProviders( light = LightColors, dark = DarkColors ) }
همانطور که در مثال زیر نشان داده شده است، رنگها را از طرح به GlanceTheme
ارائه دهید که همه اجزای سازنده شما را میپوشاند:
override suspend fun provideGlance(context: Context, id: GlanceId) { // ... provideContent { GlanceTheme(colors = MyAppWidgetGlanceColorScheme.colors) { MyContent() } } } @Composable private fun MyContent() { Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
اگر ترجیح میدهید در صورت پشتیبانی از رنگهای پویا از کاغذدیواری استفاده کنید، و در غیر این صورت از طرح رنگ برنامهتان استفاده کنید، میتوانید به صورت مشروط از طرح رنگ برنامه خود در GlanceTheme
استفاده کنید. این در قطعه زیر نشان داده شده است:
override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) GlanceTheme.colors else MyAppWidgetGlanceColorScheme.colors ) { MyContent() } } } @Composable private fun MyContent() { // ... Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
اشکال اضافه کنید
برای ارائه اشکال یا سایه های خاص به ویجت برنامه خود، از Android Drawables API استفاده کنید.
به عنوان مثال، قطعه زیر نحوه ایجاد یک drawable (یک شکل) را نشان می دهد:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="16dp"/>
<stroke android:color="@color/outline_color" android:width="1dp"/>
</shape>
آن را به هدف قابل ترکیب ارائه دهید:
GlanceModifier.background( imageProvider = ImageProvider(R.drawable.button_outline) )