Animations In Android
There are four types of animations in android:
1. Translate Animation - to move the object from one place to another place.2. Scale Animation - to resize the object or zoom the object.
3. Rotate Animation- to rotate the object clockwise or anti-clockwise.
4. Fade Animation - to make visible and invisible the object.
And for each animation we can add the effects, in android framework we call it as Interpolators, those are:
An interpolator whose rate
of change starts andends slowly
but accelerates through the middle.
| |
An interpolator whose rate
of change starts out slowly
and then accelerates.
| |
An interpolator whose change
starts backward then flings forward.
| |
An interpolator whose change
starts backward, flings forward and
overshoots the target value, then finally
goes back to the final value.
| |
An interpolator whose change bounces
at the end.
| |
An interpolator whose animation repeats
for a specified number of cycles.
| |
An interpolator whose rate of change
starts out quickly and and then
decelerates.
| |
An interpolator whose rate of change
is constant.
| |
An interpolator whose change flings
forward and overshoots the last value
then comes back.
| |
An interface that allows you to
implement your own interpolator.
|
1. Create a new android studio project. And go to web browser download a ball image.
2. Copy that ball image and paste it inside the drawable folder in the project.
3. Go to activity_main.xml and add an ImageView and set this ball image to the ImageView.
4. Also add seven buttons in the layout.
5. first four buttons are to make animation and last three buttons are to add effects.
6. Add onClick for each and every button and create the equivalent method in MainActivity.
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.animation.MainActivity">
<ImageView
android:id="@+id/ball_img"
android:layout_width="68dp"
android:layout_height="69dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:src="@drawable/ball"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:layout_marginStart="16dp"
android:text="Translate"
android:onClick="translate"
app:layout_constraintBaseline_toBaselineOf="@+id/button2"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scale"
android:onClick="scale"
app:layout_constraintBaseline_toBaselineOf="@+id/button3"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintStart_toEndOf="@+id/button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:layout_marginEnd="1dp"
android:text="Rotate"
android:onClick="rotate"
app:layout_constraintBottom_toTopOf="@+id/button7"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintStart_toEndOf="@+id/button2" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="1dp"
android:text="Fade"
android:onClick="fade"
app:layout_constraintBaseline_toBaselineOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/button3" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginStart="32dp"
android:text="Bounce"
android:onClick="bounce"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginStart="21dp"
android:text="OverShoot"
android:onClick="overShoot"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/button5" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="Accelarate"
android:onClick="accelarate"
app:layout_constraintBaseline_toBaselineOf="@+id/button6"
app:layout_constraintStart_toEndOf="@+id/button6" />
</android.support.constraint.ConstraintLayout>
7. Create new folder for animation. Right click on res folder -> go to New -> Android resource directory.
8. A new window will be open in that choose Resource type as anim and Directory name as anim.
9. A new anim folder will be created under res folder.
11. Give the name as translate and click OK.
12. Same way create other 3 files, and name those as scale, rotate and fade.
13. Copy the below text paste inside each and every xml file.
translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%p"
android:toXDelta="75%p"
android:duration="1000" />
<translate
android:startOffset="1000"
android:fromXDelta="0%p"
android:toXDelta="-75%p"
android:duration="1000"/>
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%p"
android:toXDelta="75%p"
android:duration="1000" />
<translate
android:startOffset="1000"
android:fromXDelta="0%p"
android:toXDelta="-75%p"
android:duration="1000"/>
</set>
scale.xml<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="0.5"
android:toXScale="3.0"
android:pivotX="0%"
android:pivotY="0%"
android:fromYScale="0.5"
android:toYScale="3.0"
android:duration="1000" />
<scale
android:startOffset="1000"
android:fromXScale="3.0"
android:toXScale="0.5"
android:pivotX="0%"
android:pivotY="0%"
android:fromYScale="3.0"
android:toYScale="0.5"
android:duration="1000"/> </set>rotate.xml<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="1000"/> <rotate android:fromDegrees="360" android:toDegrees="0" android:pivotX="50%" android:pivotY="50%" android:duration="1000" android:startOffset="1000"/> </set>fade.xml<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="1000" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="1000" android:duration="1000" /> </set>14. Go to MainActivity.java and load the animation for the image.
MainActivity.java
package com.example.animation; import android.app.Activity; import android.media.Image; import android.os.Bundle; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.BounceInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; public class MainActivity extends Activity { private Animation anim; private ImageView mBallImage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate); mBallImage = (ImageView) findViewById(R.id.ball_img); } public void translate(View view) { anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate); mBallImage.startAnimation(anim); } public void scale(View view) { anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale); mBallImage.startAnimation(anim); } public void rotate(View view) { anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate); mBallImage.startAnimation(anim); } public void fade(View view) { anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade); mBallImage.startAnimation(anim); } public void bounce(View view) { anim.setInterpolator(new BounceInterpolator()); mBallImage.startAnimation(anim); } public void overShoot(View view) { anim.setInterpolator(new OvershootInterpolator()); mBallImage.startAnimation(anim); } public void accelarate(View view) { anim.setInterpolator(new AccelerateInterpolator()); mBallImage.startAnimation(anim); } }15. Done. Run the code and check all these animations.
Your very own commitment to getting the message throughout came to be rather powerful and have consistently enabled employees just like me to arrive at their desired goals. Selenium Training In Bangalore | Best Selenium Training in Bangalore Digital Marketing Training in Bangalore | Best Digital Marketing Training Digital Marketing Training in Bangalore | Best Digital Marketing Training
ReplyDeleteExcellent article with great information! Great and informational post!
ReplyDeleteAndroid Training in Bangalore
Nice blog, I understood the topic very clearly.
ReplyDeleteDigital Marketing Training in Chennai | Certification | SEO Training Course | Digital Marketing Training in Bangalore | Certification | SEO Training Course | Digital Marketing Training in Hyderabad | Certification | SEO Training Course | Digital Marketing Training in Coimbatore | Certification | SEO Training Course | Digital Marketing Online Training | Certification | SEO Online Training Course