如何在jetpack compose中显示透明的应用程序背景

Nit*_*Tej 2 android app-launcher android-launcher android-jetpack-compose

我正在尝试制作一个简单的启动器,并尝试将应用程序的背景显示为完全透明或部分透明。你们能帮我看看该怎么做吗?

Tsu*_*esu 6

是的,可以做到这一点,但并非所有事情都在 Compose 方面。您需要做几件事:

1-在您的主题中,您需要告诉系统显示壁纸,使窗口背景透明并将所有栏着色为透明:

<style name="Theme.MyLauncher" parent="android:Theme.Material.Light.NoActionBar">
    <item name="android:windowShowWallpaper">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>

    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:navigationBarColor">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

2-最后,使你的主表面透明:

Surface(
    modifier = Modifier.fillMaxSize(),
    color = Color.Transparent
) {
    [...]
}
Run Code Online (Sandbox Code Playgroud)

这应该会给你一个很好且非常透明的活动。

作为额外奖励,请检查如何关闭装饰装修系统窗口,您将能够在窗口的任何位置绘图,从而为您提供更大的灵活性。干杯!