繁体   English   中英

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

[英]How to show a transparent app background in jetpack compose

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

是的,可以这样做,但并非所有内容都在 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>

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

Surface(
    modifier = Modifier.fillMaxSize(),
    color = Color.Transparent
) {
    [...]
}

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

作为奖励,检查如何关闭装饰配件系统窗口,您将能够在窗口中的任何位置绘制,给您更多的灵活性。 干杯!

是的,实际上 Android 并不是这样工作的。 您的应用程序并没有在主屏幕顶部打开,就像一个活动没有在前一个活动上方打开一样,它只是动画和感知。 但是,如果您想创建具有透明背景的启动器,可能有一种方法可以了解当前的主屏幕背景(尽管我怀疑)。 为什么不直接设置你自己的默认值呢? 或者也许可以为用户提供为您的应用定制它的选择?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM