एक नज़र में जानकारी देने वाली थीम लागू करना

एक नज़र में जानकारी देखने की सुविधा, कलर थीम को मैनेज करने के लिए एक एपीआई उपलब्ध कराती है. अन्य स्टाइल एट्रिब्यूट के लिए, जैसे कि TextStyle, टॉप-लेवल वैरिएबल का एलान करें.

रंग जोड़ें

एक नज़र में जानकारी की मदद से, मटीरियल रंगों को आसानी से लागू किया जा सकता है. टूल का इस्तेमाल करने के लिए पहले से मौजूद थीम, GlanceTheme के साथ अपने टॉप लेवल कंपोज़ेबल को रैप करें, जैसा कि यहां दिखाया गया है नीचे दिया गया उदाहरण देखें.

डाइनैमिक रंगों के साथ काम करने वाले डिवाइसों पर यह थीम, उपयोगकर्ता के हिसाब से प्लैटफ़ॉर्म के रंग. अन्य डिवाइसों पर, यह फिर से मटीरियल पर सेट हो जाता है बेसलाइन थीम चुनें. रैप किए गए रंगों के साथ स्टाइल करने के लिए GlanceTheme.colors का इस्तेमाल करें थीम. जहां भी रंग की ज़रूरत हो, वहां थीम से इन वैल्यू का इस्तेमाल किया जा सकता है.

override suspend fun provideGlance(context: Context, id: GlanceId) {

    provideContent {
        GlanceTheme {
            MyContent()
        }
    }
}

@Composable
private fun MyContent() {

    Image(
        colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary),
        // ...

    )
}

पसंद के मुताबिक थीम बनाने के लिए, GlanceTheme को colors पास करें. एक नज़र में इसके लिए androidx.glance:glance-material इंटरऑपरेबिलिटी लाइब्रेरी उपलब्ध कराता है मटीरियल 3 के रंगों के लिए मटीरियल 2 और androidx.glance:glance-material3 सहायता.

उदाहरण के लिए, ColorProviders पर अपने ऐप्लिकेशन के मौजूदा मटीरियल रंग की जानकारी दें एक नज़र में जानकारी देने वाली कलर स्कीम बनाने के लिए एपीआई, जैसा कि इस स्निपेट में दिखाया गया है:

// 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 एपीआई.

उदाहरण के लिए, नीचे दिए गए स्निपेट में ड्रॉ करने लायक (आकार) बनाने का तरीका बताया गया है:

<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)
)