Glance থিম প্রয়োগ করা

Glance, রঙের থিম ম্যানেজ করার জন্য API প্রদান করে। অন্যান্য স্টাইল অ্যাট্রিবিউটের জন্য, যেমন TextStyle, টপ-লেভেল ভেরিয়েবল ঘোষণা করুন।

রঙ যোগ করুন

Glance, আউট অফ দ্য বক্স মেটেরিয়াল কালারের প্রয়োগ প্রদান করে। বিল্ট-ইন থিম ব্যবহার করতে, আপনার টপ লেভেল কম্পোজেবল 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),
        // ...

    )
}

থিম কাস্টমাইজ করতে, আপনি colors-কে GlanceTheme-এ পাস করতে পারেন। Glance Material 2-এর জন্য androidx.glance:glance-material ইন্টারঅপারেবিলিটি লাইব্রেরি এবং Material 3 কালার সাপোর্টের জন্য androidx.glance:glance-material3 প্রদান করে।

যেমন, Glance রঙের স্কিম তৈরি করতে ColorProviders API-তে আপনার অ্যাপের বর্তমান মেটেরিয়াল কালার প্রদান করুন, যেমন নিম্নলিখিত স্নিপেটে দেখানো হয়েছে:

// 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 ব্যবহার করুন।

যেমন, নিম্নলিখিত স্নিপেট থেকে জানা যায় যে কীভাবে একটি ড্রয়েবল (একটি আকার) তৈরি করতে হয়:

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