Zoom out Transition animation between two activities

13,951

Solution 1

Try this in zoom_enter.xml and remove animations from zoom_exit.xml. You will see better effects.

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
    <scale android:fromXScale="0.0" android:toXScale="1.0"
       android:fromYScale="0.0" android:toYScale="1.0"
       android:pivotX="50%p" android:pivotY="50%p"
       android:duration="@android:integer/config_mediumAnimTime" />
</set>

Hope this helps.

Solution 2

overridePendingTransition(zoom_enter_new, zoom_exit_actual);

First param is for the incoming Activity (so the new) Second param is for the outgoing Activity (the actual)

So if you want to make the same effect of the video where seems that the actual activity is hide instantly than second param need to be set to 0 (means no animation)

overridePendingTransition(zoom_enter_new, 0);

And for making the new activity zoomin like the video this is the anim xml resource explained (zoom_enter_new.xml in res/anim/ dir)

    <set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <!--scale view fromX fromY are the starting point  (.5 is 50% of scale, )-->
    <!--scale view toX and toY are the final state (1 is 100%)-->
    <!--pivot is the center of animation, so in your case the zoomin on the video is from the exact center (50% pivot x, 50% pivot Y)-->
    <scale android:fromXScale=".5" android:toXScale="1"
        android:fromYScale=".5" android:toYScale="1"
        android:pivotX="50%p" android:pivotY="50%p"
        android:duration="@android:integer/config_longAnimTime" />

    <!-- alpha animation is made at the same time of scale animation, and for me make a better and smooth result, alpha 0 is full trasparent, 1 is the normal state. The final alpha state of the activity after this animation is 1, so pay attention toAlpha must be 1 if you don't want glitch-->
    <alpha android:fromAlpha="0.5" android:toAlpha="1"
        android:duration="@android:integer/config_longAnimTime"/>
</set>

overridePendingTransition(R.anim.zoom_enter_new, 0);

Tobia

Share:
13,951

Related videos on Youtube

Hussein
Author by

Hussein

I am a student and an aspiring developer. I would like to learn from other experienced developers.

Updated on September 15, 2022

Comments

  • Hussein
    Hussein over 1 year

    I checked out the transition animation that comes with API code and i found animation zoom_enter and zoom_exit in which activity 1 sinks IN to show activity 2. I need the other way round. I need activity 2 to zoom out from inside and come on top. (I hope you are getting me). This type of animation is the same on iphone screen transition.

    The code below is what i have for the effect that i don't need. Here is the code for zoom_enter.xml

    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator">
        <scale android:fromXScale="2.0" android:toXScale="1.0"
           android:fromYScale="2.0" android:toYScale="1.0"
           android:pivotX="50%p" android:pivotY="50%p"
           android:duration="@android:integer/config_mediumAnimTime" />
    </set>
    

    And here is the code for zoom_exit.xml

    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:zAdjustment="top">
        <scale android:fromXScale="1.0" android:toXScale=".5"
           android:fromYScale="1.0" android:toYScale=".5"
           android:pivotX="50%p" android:pivotY="50%p"
           android:duration="@android:integer/config_mediumAnimTime" />
        <alpha android:fromAlpha="1.0" android:toAlpha="0"
            android:duration="@android:integer/config_mediumAnimTime"/>
    </set>
    

    Then right after startActivity i call the method below:

     overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
    

    Can anyone suggest how i can make changes to the above files to have the screen transition i explained?

    • Waza_Be
      Waza_Be over 11 years
      Have you tried to invert R.anim.zoom_enter and exit? what is wrong, what do you want to improve?
    • Hussein
      Hussein over 11 years
      When i invert the parameters its still the same. I get the same effect as before but with some glitches. This is what i mean. Check out how when an icon is clicked the second activity springs out.youtube.com/watch?feature=endscreen&NR=1&v=eHm9MwjiwQA
  • Jasper
    Jasper over 9 years
    What needs to be done for: "remove animations from zoom_exit.xml" ?
  • saksham
    saksham about 5 years
    @Jasper user 0 for that parameter overridePendingTransition(R.anim.zoom_enter_new, 0);