Sei sulla pagina 1di 25

ANDROID

Animation

Basic Layout

Start by creating an app with the bare basics


A

TextView

First we will fade in this TextView

Specifying your Animation

Create an anim folder under your res directory to hold your animation files Then create a new fade_in.xml directory

Fade In Parameters
Parameter fromAlpha toAlpha duration Description The initial opacity 0 is invisible. 1 is fully visible The ending opacity 0 is invisible. 1 is fully visible How long in milliseconds the animation takes

Applying Animation in Code

1. Create the startAnimation funciton in your Activity Access the TextView Create the fade In Animation Then start the fade In Animation applying it to the TextView

Applying Animation in Code

Code should look as follows:

Pause and Resume

Animation can be expensive. Potentially it could take a while, or it could take resources Hence, we need to stop the animation when the user requests to go to another screen, or it is interrupted by another means

Pause Method

In the pause method you need to:


get

the TextView by its id call the clear animation for the TextView

Resume Method

When resume is called you want to re-run the animation.

Add a Second Title

Fade In After a Duration

Now we will fade the second TextView in after an amount of seconds. Create a fade_in2.xml and add the offset property

Apply the Animation


Now apply the fade_in2.xml Add the code to the startAnimation():

And add it to the onPause():

Add an Image

Lets add an ImageView between the two titles. Your page should now look as follows:

Add Custom Animation

Create a new file called custom_anim.xml

Rotating Animation

Rotating
Description The degree the item starts out at 0, 360 original position, 180 flipped

Parameter fromDegrees

toDegrees
pivotX

The degree the item ends out at 0, 360 original position, 180 flipped
How much it pivots around the x axis in a percent of its width

pivotY
duration

How much it pivots around the Y axis in a percent of its height


How long in milliseconds the animation takes

Add Rotating to your Custom Animation

This will rotate your ImageView once its applied:

Apply the Animation


Now apply the custom_anim.xml Add the code to the startAnimation():

And add it to the onPause():

Adding more Animation

Make it grow and fade in as well by adding it to the custom_anim.xml

and it should all work

Animate all Views in a Layout

You will create a LayoutAnimationController which you can use to animate all views within a particular layout. e.g. Animate all items in your LinearLayout First assign an Id to your LinearLayout

Animate all Views in a Layout

Access the custom_anim xml and create an Animation Object for it Create a LayoutAnimationController based on the Animation Object you created

Animate all Views in a Layout


Now pick up the Linear Layout Then apply the LayoutAnimationController to it

Full Code to Animate all Views

Code for startAnimation() <comment out previous code>

Code to put in onPause() <comment out previous code>

Going to next Activity

Attach an AnimationListener to listen to the end of the Animation When the end of the animation is encountered we will proceed to the next Activity
Before proceeding make sure to create a new Activity and register it in the Manifest file Also, take out the code to Animate all views and lets work with the individual views.

Create an AnimationListener

When the Animation Ends end this Activity and start the next

Attach the EventListener

We will attach the event listener to the animation that will finish last as follows:

Then when it finishes the next screen will load

Potrebbero piacerti anche