如何在不删除以前活动的情况下在另一个活动上显示透明活动

And*_*jit 18 android android-intent

如何在不删除以前活动的情况下在另一个活动上显示透明活动?

我能够创建透明活动,但是当我尝试使用intent推送它时,之前的活动将被删除.我希望我的透明活动在之前的活动之上.

谢谢!

Dee*_*ami 30

像这样在清单中声明你的活动

 <activity android:name=".yourActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
Run Code Online (Sandbox Code Playgroud)

并像这样为您的布局添加transperent背景

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
  android:background = "any tranparent image name"  >
 </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

编辑:

我认为您正在使用它打开透明活动,完成之前的活动

Intent intent =new Intent(mContext,yourNewActivity.class);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)

从此处删除完成,然后在此之前的活动中删除您的新活动

 Intent intent =new Intent(mContext,yourNewActivity.class);
 startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

希望有帮助..

  • 好的解决方案 注意:透明背景不需要是透明图像,只需设置:android:background ="#00ffffff" (5认同)
  • 是的,我通过删除finish()语句与上面完全相同,我的问题解决了.谢谢! (2认同)

Nan*_*pal 20

对于AppCompat样式,您可以在您的使用中使用以下代码styles.xml,并在您的中添加manifest.

styles.xml

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>   
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>   
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="colorPrimaryDark">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

表现

<activity android:name=".HomeActivity"
android:theme="@style/Theme.Transparent"</activity>
Run Code Online (Sandbox Code Playgroud)