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

时间:2012-07-02 03:36:41

标签: android android-intent

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

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

谢谢!

3 个答案:

答案 0 :(得分:28)

在清单中声明您的活动

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

并为您的布局添加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>

修改

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

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

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

 Intent intent =new Intent(mContext,yourNewActivity.class);
 startActivity(intent);
希望帮助..

答案 1 :(得分:17)

对于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>

<强>清单

<activity android:name=".HomeActivity"
android:theme="@style/Theme.Transparent"</activity>

答案 2 :(得分:2)

我不知道你为什么要这样,但也许Custom dialog可以做你想要的。

编辑:此问题之前已得到解答:How do I create a transparent Activity on Android?

我不想变得粗鲁,但我认为你应该从你的角度做更多的研究。另外,你可以发布一些代码来看看你究竟尝试了什么,它也表明你正在尝试一些东西。