如何为Android中的所有屏幕设置屏幕过渡?

时间:2013-12-28 22:54:33

标签: android animation translation

在我的应用程序中,我想使用淡入淡出的动画在所有屏幕/活动之间切换。我可以设置一些东西,可能在清单中,允许在任何屏幕/活动之间进行此操作吗?

-----编辑-----

我根据哈马德的建议更新了我的文件。删除@android:style/Theme.Holo.Light.NoActionBar会导致我在某些元素上丢失我的样式,如填充,边距,背景,重力,文本颜色等。所以我做了以下修复样式,但现在它似乎正在运行“跳转到下一个屏幕“和”一起淡入下一个屏幕“。

screen_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="1000" >
    </alpha>

</set>

screen_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:duration="1000" >
    </alpha>
</set>

styles.xml

<style name="ScreenTransition.Activity" parent="@android:style/Theme.Holo.Light.NoActionBar"> 
    <item name="android:windowEnterAnimation">@anim/screen_in</item>
    <item name="android:windowExitAnimation">@anim/screen_out</item>
</style>

<style name="ScreenTransition" parent="android:Theme.Translucent">
    <item name="android:windowAnimationStyle">@style/ScreenTransition.Activity</item>
</style>

的AndroidManifest.xml

<activity
 android:name="com.library.books.MainActivity"
 android:label="home"
 android:screenOrientation="landscape"
 android:windowSoftInputMode="adjustPan" 
 android:theme="@style/ScreenTransition" >
</activity>

1 个答案:

答案 0 :(得分:3)

为此:
  1.在<style>中创建res/styles.xml,如下所示:

<style name="YourAnimation.Activity" parent="@android:style/Animation.Activity"> 
<item name="android:windowEnterAnimation">@anim/your_in_down</item>
<item name="android:windowExitAnimation">@anim/your_out_down</item>
</style>

2.然后您可以将样式应用于主题,在同一文件中:

<style name="YourTheme" parent="android:Theme.Translucent">
   ...
   <item name="android:windowAnimationStyle">@style/YourAnimation.Activity</item>
</style>

3.最后将主题应用于清单中的活动:

<activity
    android:name=".YourActivity"
    android:theme="@style/YourTheme" />