22

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

我能够创建透明活动,但是当我尝试使用 intent 推送它时,之前的活动会被删除。我希望我的透明活动位于先前活动之上。

谢谢!

4

3 回答 3

36

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

 <activity android:name=".yourActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

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

 <?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>

编辑:

我认为你正在使用它来打开你的透明活动它完成你以前的活动

Intent intent =new Intent(mContext,yourNewActivity.class);
startActivity(intent);
finish();

从此处删除完成,然后将您的新活动置于以前的活动之上,如下所示

 Intent intent =new Intent(mContext,yourNewActivity.class);
 startActivity(intent);

希望帮助..

于 2012-07-02T05:11:32.197 回答
25

对于AppCompat样式,您可以styles.xmlmanifest.

样式.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>

显现

<activity android:name=".HomeActivity"
android:theme="@style/Theme.Transparent" />
于 2017-06-18T06:12:56.980 回答
1

我不知道您为什么要这样做,但也许自定义对话框可以满足您的需求。

编辑:这个问题之前已经回答过:如何在 Android 上创建一个透明的活动?

我不想粗鲁,但我认为你应该从你的角度做更多的研究。此外,您能否发布一些代码以查看您到底在尝试什么,它也表明您正在尝试某些东西。

于 2012-07-02T03:43:20.803 回答