Android Left to Right slide animation Android Left to Right slide animation android android

Android Left to Right slide animation


Use this xml in res/anim/

This is for left to right animation:

<set xmlns:android="http://schemas.android.com/apk/res/android"     android:shareInterpolator="false">  <translate android:fromXDelta="-100%" android:toXDelta="0%"             android:fromYDelta="0%" android:toYDelta="0%"             android:duration="700"/></set>

This is for right to left animation:

<set xmlns:android="http://schemas.android.com/apk/res/android"     android:shareInterpolator="false">  <translate     android:fromXDelta="0%" android:toXDelta="100%"     android:fromYDelta="0%" android:toYDelta="0%"     android:duration="700" /></set>

In your coding use intent like for left to right:

this.overridePendingTransition(R.anim.animation_enter,                   R.anim.animation_leave);

In your coding use intent like for right to left

this.overridePendingTransition(R.anim.animation_leave,                               R.anim.animation_enter);


If you want the transition work for whole application you can create a rootacivity and inherit it in the activity you need. In Root Activity's onCreate call overridePendingTransition with desired direction. And onStart call overridePendingTransition with other direction if activity is resumed. Here I am giving full running code below.Correct me if I am wrong.

create this xml file on your anim folder

anim_slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="600"        android:fromXDelta="100%"        android:toXDelta="0%" >    </translate></set>

anim_slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="600"        android:fromXDelta="-100%"        android:toXDelta="0%" >    </translate></set>

anim_slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="600"        android:fromXDelta="0%"        android:toXDelta="-100%" >    </translate></set>

anim_slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="600"        android:fromXDelta="0%"        android:toXDelta="100%" >    </translate></set>

RootActivity

import android.app.Activity;import android.os.Bundle;public class RootActivity extends Activity {    int onStartCount = 0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        onStartCount = 1;        if (savedInstanceState == null) // 1st time        {            this.overridePendingTransition(R.anim.anim_slide_in_left,                    R.anim.anim_slide_out_left);        } else // already created so reverse animation        {             onStartCount = 2;        }    }    @Override    protected void onStart() {        // TODO Auto-generated method stub        super.onStart();        if (onStartCount > 1) {            this.overridePendingTransition(R.anim.anim_slide_in_right,                    R.anim.anim_slide_out_right);        } else if (onStartCount == 1) {            onStartCount++;        }    }}

FirstActivity

import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class FirstActivity extends RootActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView) findViewById(R.id.tvTitle);        tv.setText("First Activity");        Button bt = (Button) findViewById(R.id.buttonNext);        bt.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Intent i = new Intent(FirstActivity.this, SecondActivity.class);                startActivity(i);            }        });    }}

SecondActivity

import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class SecondActivity extends RootActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView) findViewById(R.id.tvTitle);        tv.setText("Second Activity");        Button bt = (Button) findViewById(R.id.buttonNext);        bt.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Intent i = new Intent(SecondActivity.this, ThirdActivity.class);                startActivity(i);            }        });    }}

ThirdActivity

import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class ThirdActivity extends RootActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView) findViewById(R.id.tvTitle);        tv.setText("Third Activity");        Button bt = (Button) findViewById(R.id.buttonNext);        bt.setText("previous");        bt.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                finish();            }        });    }}

and finally Manifest

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.transitiontest"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="18" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.example.transitiontest.FirstActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            android:name="com.example.transitiontest.SecondActivity"            android:label="@string/app_name" >        </activity>        <activity            android:name="com.example.transitiontest.ThirdActivity"            android:label="@string/app_name" >        </activity>    </application></manifest>


Made a sample code implementing the same with slide effects from left, right, top and bottom.(For those who dont want to make all those anim xml files :) )

Checkout out the code on github