Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Start Activity with an animation

I am trying to start an activity with a custom transition animation. The only way I have found out so far to do this (without using onPendingTransition() in the previous activity) is to use a custom theme on the activity and define either activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation or windowAnimationStyle to set the animation. But, none of these attributes are working for me. Some experimentation yielded the following results-

If I set the windowAnimationStyle attribute to some custom style which defines values for activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation or windowAnimationStyle I can get rid of the default transition animation occurring at the start of the activity. It doesn't show the transition animation using the actual value specified but at least the default animation is not shown.

According to the reference doc here,

I should be able to define an animation at the start of the activity using activityOpenEnterAnimation. But no success so far.

Any ideas?

like image 514
adityad Avatar asked Apr 12 '10 22:04

adityad


People also ask

What does startActivity () method do?

To start an activity, use the method startActivity(intent) . This method is defined on the Context object which Activity extends. The following code demonstrates how you can start another activity via an intent. # Start the activity connect to the # specified class Intent i = new Intent(this, ActivityTwo.

What is transition animation in Android?

Android's transition framework allows you to animate all kinds of motion in your UI by simply providing the starting layout and the ending layout.


1 Answers

I am using this in a current project of mine, it is basically pretty simple. You define a new animation style in your styles.xml, like this:

<!-- just defines top layer "Animation" --> <style name="Animation" />  <!-- the animations must have been defined in your "anim" folder, of course --> <style name="Animation.MyAwesomeAnimation" parent="android:style/Animation.Activity">     <item name="android:activityOpenEnterAnimation">@anim/myawesomeanimation_enter</item>     <item name="android:activityOpenExitAnimation">@anim/hold_long</item>     <item name="android:activityCloseEnterAnimation">@anim/hold_long</item>     <item name="android:activityCloseExitAnimation">@anim/myawesomeanimation_exit</item> </style> 

Then set this style in a theme (themes.xml):

<style name="Theme.MyAwesomeTheme" parent="Theme.Default">     <item name="android:windowAnimationStyle">@style/Animation.MyAwesomeAnimation</item> </style> 

And then you can simply set these themes to every activity you like in your AndroidManifest.xml:

<activity     android:name=".MyAwesomeActivity"     android:theme="@style/Theme.MyAwesomeTheme" /> 

Now I wish you big fun with activity animations! :-D

like image 141
mreichelt Avatar answered Sep 20 '22 14:09

mreichelt