我想在另一个Activity之上创建一个透明的Activity。
我该如何实现这一目标?
我想在另一个Activity之上创建一个透明的Activity。
我该如何实现这一目标?
其他解决方案对我有用,但我注意到可能会影响某些人的问题。当我像这样启动我的活动:
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
不要使用像这样的一行代码
startActivity(new Intent(this, MainActivity.class));
我只得到了黑色背景,这真是令人头疼。我还没有弄清楚是什么原因导致的,我猜测可能与设备有关(在小米上测试过)。因此,传递值也需要像这样。
startActivity(new Intent(this, MainActivity.class)
.putExtra("SOME_VALUE", value)
.putExtra("ANOTHER_VALUE", value2));
编辑: 将样式的父级更改为 Theme.AppCompat.Light.NoActionBar 似乎已经解决了这个问题。
只需将此放入style.xml中
<item name="android:windowBackground">@android:color/transparent</item>
或者在清单文件中添加
<activity android:name=".usual.activity.Declaration"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
您可以从您的活动中删除setContentView(R.layout.mLayout)
,并将主题设置为android:theme="@style/AppTheme.Transparent"
。请查看链接以获取更多详细信息。
android:theme="@android:style/Theme.Translucent.NoTitleBar"
将活动设置为透明,但会阻塞用户界面。
如果您想要一个无界面的活动,请使用以下代码:
android:theme="@android:style/Theme.NoDisplay"
除了gnobal提供的解决方案,我还需要在特定活动的布局文件中将alpha设置为0,因为在某些手机上(运行Android 10的Redmi Narzo 20 pro),屏幕的对话框部分显示出来,而这个屏幕本应该是透明的。由于某种原因,windowIsFloating导致了这个问题,但是如果将其删除,我就无法得到期望的输出。
步骤:
将以下内容添加到位于res>values>styles.xml下的style.xml中: