我想在另一个活动之上创建一个透明的活动。

我怎样才能做到这一点呢?


当前回答

将半透明主题分配给你想要在项目的Android清单文件中透明的活动:

<activity
    android:name="YOUR COMPLETE ACTIVITY NAME WITH PACKAGE"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

其他回答

你可以从你的活动中删除setContentView(r.b ayout. mlayout),并设置主题为android:theme="@style/AppTheme.Transparent"。查看这个链接了解更多细节。

我在2.3.3上通过添加android:theme="@android:style/ theme来实现它。半透明的”在活动标签在清单。

我不知道更低的版本……

除了以上回答:

以避免安卓奥利奥相关的崩溃活动

<style name="AppTheme.Transparent" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
</style>

<activity
     android:name="xActivity"
     android:theme="@style/AppTheme.Transparent" />

2021年的事实

只需添加

<item name="android:windowBackground">@android:color/transparent</item>

你就完成了。

windowIsFloating错误,这使得INSET浮动窗口。

windowcontenttoverlay只与阴影相关。

windowwistranslucent是错误的,它没有使它,所以你可以看到背后的活动。windowIsTranslucent只适用于动画转换。

backgroundDimEnabled使下面的活动变暗,但是,它在不同的设备上是完全错误的。(在某些情况下,除非你使用windowisfloat,否则它什么也不做;总的来说,这种行为是完全错误的/不确定的。)

colorBackgroundCacheHint是无关紧要的,除非在非常旧的设备上,默认是null。

如果你正在使用AppCompatActivity,那么在styles.xml中添加这个

<style name="TransparentCompat" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>

在清单文件中,您可以像这样将此主题添加到活动标签

android:theme="@style/TransparentCompat"

更多细节请阅读这篇文章