articles

home / developersection / articles / how to animate image left to right in android

How to animate image left to right in android

Manoj Pandey 18.98 K 28-Mar-2015

How to animate image left to right in android


Android provides powerful api to apply animation in out ui element drawing custom 2D and 3D animation. Animation makes our ui shining, quality feel and standard. Tween nimation calculates the animation with information such as the start point, end point, size, rotation, and other common aspects of an animation.

Here I am creating a sample of animation which image is moving left to right and right to left.

1.      Create an android project and api level must be greater than 10.

2.      Add view in activity_main.xml file

 

<?xml version="1.0" encoding="utf-8"?>

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

    android:id="@+id/myLayout"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

 

    <ImageView

        android:id="@+id/imgLogo"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:src="@drawable/ic_launcher" />

 

    <Button

        android:id="@+id/btnStart"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_centerHorizontal="true"

        android:layout_marginBottom="20dp"

        android:layout_marginTop="30dp"

        android:text="Start Animation" />

 

</RelativeLayout>

 

3.      Now add new  folder in res name as anim (res/anim) and create a my anim. xml file (Resource type must be Tweet Animation ) .

 

4.      Add following xml code in res/anim/myanim.xml file

 

<?xml version="1.0" encoding="utf-8"?>

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

    android:fillAfter="true"

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

 

    <!-- Use startOffset to give delay between animations -->

 

 

    <!-- Move -->

    <translate

        android:duration="2000"

        android:fillAfter="true"

        android:startOffset="300"

        android:toXDelta="130%p" />

    <translate

        android:duration="800"

        android:fillAfter="true"

        android:startOffset="2000"

        android:toYDelta="10%p" />

    <translate

        android:duration="2000"

        android:fillAfter="true"

        android:startOffset="2800"

        android:toXDelta="-130%p" />

 

</set>

 

5.       Now follow the below code in Mainactivity.class

 

package com.example.demoanimation;

 

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.view.animation.Animation.AnimationListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.RelativeLayout;

 

public class MainActivity extends Activity {

     ImageView imgLogo;

     Button btnStart;

     int pdfrom = 40;

     RelativeLayout layout;

     Animation animSequential;

 

     @Override

     protected void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.activity_main);

           layout = (RelativeLayout) findViewById(R.id.myLayout);

           imgLogo = (ImageView) findViewById(R.id.imgLogo);

           btnStart = (Button) findViewById(R.id.btnStart);

           // repeat animation (left to right, right to left )

           // load the animation

animSequential = AnimationUtils.loadAnimation(getApplicationContext(),

                     R.anim.sequential);

 

           animSequential.setFillBefore(true);

           animSequential.setFillAfter(true);

 

           animSequential.setRepeatCount(Animation.INFINITE);

           animSequential.setRepeatMode(Animation.INFINITE);

           // button click event

           btnStart.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

                     // start the animation

                     pdfrom = 40;

                     imgLogo.startAnimation(animSequential);

 

                }

           });

           animSequential.setAnimationListener(new AnimationListener() {

 

                @Override

                public void onAnimationStart(Animation animation) {

                     // TODO Auto-generated method stub

                     layout.setPadding(-50, 0, 0, 0);

 

                }

 

                @Override

                public void onAnimationRepeat(Animation animation) {

                     // TODO Auto-generated method stub

                }

 

                @Override

                public void onAnimationEnd(Animation animation) {

                     // TODO Auto-generated method stub

                     if (pdfrom < 241) {

                           imgLogo.setPadding(0, pdfrom, 0, 0);

                           pdfrom = pdfrom + 40;

                          imgLogo.startAnimation(animSequential);

                     }

else

{

 

animSequential.reset();

                               layout.setPadding(0, 0, 0, 0);

}

 

                }

           });

 

     }

 

}

 

Now run your application

  


Updated 07-Feb-2020

Leave Comment

Comments

Liked By