使用overridependingtransition()滑动活动时保持背景相同

时间:2013-12-20 15:46:31

标签: java android animation slide

我使用此代码从一个活动滑动到另一个活动。

overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);

当背景为纯色时,效果很好。但是,我的背景不是纯色。以下是我的背景。

enter image description here

因此,当此背景从右向左滑动时,您会注意到转换。我希望唯一值得注意的是移动按钮,TextViews等。我该如何做到这一点?

修改

基于Matt的评论(另一个Matt,不是我),我创建了一个Splash Activity并将其背景设置为云背景。然后我从所有其他活动中删除了云背景。当SplashScreen过渡到MainMenu类时,会显示以下内容:

enter image description here

所以基本上我看到所有应用程序所在的模拟器的主屏幕。以下是我的新AndroidManifest.xml

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity 
        android:name=".SplashScreen"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action 
                android:name="android.intent.action.MAIN" />
            <category 
                android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:label="@string/app_name"
        android:name=".MainMenu"
        android:screenOrientation="portrait" 
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:label="@string/app_name"
        android:name=".Levels"
        android:screenOrientation="portrait" 
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

我将此添加到styles.xml

<style name="Theme.Transparent" parent="android:Theme">
    <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:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

编辑#2

我正在慢慢取得进展。现在SplashScreen启动,然后完美过渡到MainActivity。转换到其他屏幕(例如,当我单击“播放”按钮时)尚未完全正确。它们在没有背景变化的情况下进行转换,但之前的透明活动仍然存在,并且所有透明活动开始堆叠在彼此之上。有没有办法解雇&#34;新的意图/活动开始时的透明活动,以便它们不会重叠并叠加在一起?

enter image description here

1 个答案:

答案 0 :(得分:1)

我的第一个想法是使用该图像(可能是一个活动)保留背景中的某些内容,然后使用主题@ style / Theme.Transparent

设置要在其上滑动的活动