[英]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.