Animations 1 Fall 2012 CS2302: Programming Principles.

13
Animations 1 Fall 2012 CS2302: Programming Principles

Transcript of Animations 1 Fall 2012 CS2302: Programming Principles.

Page 1: Animations 1 Fall 2012 CS2302: Programming Principles.

1

Animations

Fall 2012 CS2302: Programming Principles

Page 2: Animations 1 Fall 2012 CS2302: Programming Principles.

Animation Category

1. Tweened Animations– Scale animations– Rotate animations– Alpha animations– Translate animations

2. Frame-by-Frame Animations

Fall 2012 CS2302: Programming Principles2

Page 3: Animations 1 Fall 2012 CS2302: Programming Principles.

Procedure to create Tweened Animations

Fall 2012 CS2302: Programming Principles3

1. Create an object of AnimationSet2. Create an object of Animation

– TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)

– AlphaAnimation(float fromAlpha, float toAlpha)

– ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

– RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

3. Setting parameters for the object of Animation4. Add the object of Animation to the object of AnimationSet5. startAnimation(animationSet);

Page 4: Animations 1 Fall 2012 CS2302: Programming Principles.

Attributes of Animations

Fall 2012 CS2302: Programming Principles4

ANIMSTION YPE

ATTRIBUTES VALID VALUES

Alpha fromAlpha / toAlpha float from 0 to 1

Scale fromXScale / toXScale float from 0 to 1

fromYScale / toYScale float from 0 to 1

pivotX / pivotY String of the percentage of graphic width/height from 0% to 100%

Translate fromX / toX float from 0 to 1

fromY / toY float from 0 to 1

Rotate fromDegrees / toDegrees float from 0 to 360

pivotX / pivotY String of the percentage of graphic width/height from 0% to 100%

Page 5: Animations 1 Fall 2012 CS2302: Programming Principles.

Common Methods of Tweened Animations

Fall 2012 CS2302: Programming Principles5

setDuration(long durationMills)– set the amount of time (in milliseconds) for the animation to run

setFillAfter(boolean fillAfter)– If fillAfter is set to true, then the animation transformation is

applied after the animation is over.

setFillBefore(boolean fillBefore)– If fillBefore is set to true, then the animation transformation is

applied before the animation has started.

setStartOffSet(long startOffset)– Set the delay in milliseconds before the animation runs.

setRepeatCount(int repeatCount)– Defines how many times the animation should repeat.

Page 6: Animations 1 Fall 2012 CS2302: Programming Principles.

Create Tweened Animations by editing xml file

Fall 2012 CS2302: Programming Principles6

Create a folder called anim under res folder Create new xml files in the anim folder. Add a set tag in the xml

files: <set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator"></set>

Add rotate, alpha, scale, or translate tag in the set tag.

Use AnimationUtils.loadAnimation to load the xml file, and then create an object of Animation

startAnimation

Page 7: Animations 1 Fall 2012 CS2302: Programming Principles.

Alpha Animation’s xml file

Fall 2012 CS2302: Programming Principles7

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator">

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

</set>

Page 8: Animations 1 Fall 2012 CS2302: Programming Principles.

Rotate Animation’s xml file

Fall 2012 CS2302: Programming Principles8

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator">

<rotate android:fromDegrees="0"android:toDegrees="360"android:pivotX="50%"android:pivotY="50%"android:duration="5000" />

</set>

Page 9: Animations 1 Fall 2012 CS2302: Programming Principles.

Translate Animation’s xml file

Fall 2012 CS2302: Programming Principles9

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator">

<translate android:fromXDelta="50%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="100%" android:duration="2000" />

</set>

Page 10: Animations 1 Fall 2012 CS2302: Programming Principles.

Scale Animation’s xml file

Fall 2012 CS2302: Programming Principles10

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator">

<scale android:fromXScale="1.0" android:toXScale="0.0"android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%"android:pivotY="50%" android:duration="2000" />

</set>

Page 11: Animations 1 Fall 2012 CS2302: Programming Principles.

Load xml file

In the MainActivity.java file– Animation animation = (Animation) AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate);

– imageView.startAnimation(animation);

11 Fall 2012 CS2302: Programming Principles

Page 12: Animations 1 Fall 2012 CS2302: Programming Principles.

Frame-By-Frame Animations

Create a xml file under res/drawable <animation-list xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="false"><item android:drawable="@drawable/nv1"

android:duration="500" /><item android:drawable="@drawable/nv2"

android:duration="500" /><item android:drawable="@drawable/nv3"

android:duration="500" /><item android:drawable="@drawable/nv4"

android:duration="500" /></animation-list>

12 Fall 2012 CS2302: Programming Principles

Page 13: Animations 1 Fall 2012 CS2302: Programming Principles.

Frame-By-Frame Animations

Load the xml file– imageView.setBackgroundResource(R.drawable.anim);

Get AnimationDrawable– AnimationDrawable animationDrawable =

(AnimationDrawable)imageView.getBackground();

– Start the animation– animatinDrawable.start();

13 Fall 2012 CS2302: Programming Principles