What is the default transition between activities

2019-02-12 22:32发布

问题:

I built an application with quite a few activities and I would like to have "slide from right on enter/slide from left on exit" transitions between them.

I read more than once that slide transitions should be the Android default, but on the device I am developing on the transitions are fade in/fade out by default (Galaxy Tab 2 7", on ICS 4.0).

Is there anything I need to declare at application level, for example in the manifest file?

I am asking because otherwise I would need to add overridePendingTransition (R.anim.right_slide_in, R.anim.left_slide_out); to all my transitions which are plenty...just wondering if I am missing something before going that road.

Many thanks

回答1:

No answers...on the devices 4+ I tried, the animation is a fade-in fade-out with zoom in or out...

I added the code manually where I wanted to have the slide animation:

//open activity
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.right_slide_in, R.anim.left_slide_out);

xml animation right to left:

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

<translate
    android:duration="300"
    android:fromXDelta="100%p"
    android:toXDelta="0" />

</set>

xml animation left to right:

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

<translate
    android:duration="300"
    android:fromXDelta="0"
    android:toXDelta="-100%p" />

</set>


回答2:

In your style.xml file put

 <style name="WindowAnimationTransition">
    <item name="android:windowEnterAnimation">@android:anim/slide_in_left</item>
    <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>

and add

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
   ...
    <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
</style>


回答3:

There is a way which involves creating a style and then adding it in manifest here: How to change all the activity transitions at once in Android application?, yet I only managed to make it work over startActivity(). Whenever back is pressed this method won't work or I might just missing something.