Slide Right To Left Android Animations
Solution 1:
Have a read through this blog post with an example of transition animations, I've included the code below:
Calling Activity
package com.as400samplecode;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
publicclassMainActivityextendsActivityimplementsOnClickListener{
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButtonnextActivity= (Button) findViewById(R.id.nextActivity);
nextActivity.setOnClickListener(this);
}
publicvoidonClick(View v) {
switch (v.getId()) {
case R.id.nextActivity:
IntentnextActivity=newIntent(this,NextActivity.class);
startActivity(nextActivity);
//push from bottom to top
overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out);
//slide from right to left//overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);break;
// More buttons go here (if any) ...
}
}
@OverridepublicbooleanonCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
returntrue;
}
}
Layout Resource for the Calling Activity
<?xml version="1.0" encoding="UTF-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:background="@color/ivory"><Buttonandroid:id="@+id/nextActivity"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginTop="15dp"android:text="Go to Next Activity" /></RelativeLayout>
Called Activity
package com.as400samplecode;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
publicclassNextActivityextendsActivityimplementsOnClickListener{
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
ButtonpreviousActivity= (Button) findViewById(R.id.previousActivity);
previousActivity.setOnClickListener(this);
}
publicvoidonClick(View v) {
switch (v.getId()) {
case R.id.previousActivity:
finish();
//push from top to bottom
overridePendingTransition(R.anim.push_down_in, R.anim.push_down_out);
//slide from left to right//overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);break;
// More buttons go here (if any) ...
}
}
}
Layout Resource for the Called Activity
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".NextActivity"android:background="@color/khaki"><Buttonandroid:id="@+id/previousActivity"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginTop="15dp"android:text="Go to Previous Activity" /></RelativeLayout>
Animation Resource - push_down_in.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="-100%p"android:toYDelta="0"android:duration="5000"/><alphaandroid:fromAlpha="0.0"android:toAlpha="1.0"android:duration="5000" /></set>
Animation Resource - push_down_out.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="0"android:toYDelta="100%p"android:duration="5000" /><alphaandroid:fromAlpha="1.0"android:toAlpha="0.0"android:duration="5000" /></set>
Animation Resource - push_up_in.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="100%p"android:toYDelta="0"android:duration="5000"/><alphaandroid:fromAlpha="0.0"android:toAlpha="1.0"android:duration="5000" /></set>
Animation Resource - push_up_out.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="0"android:toYDelta="-100%p"android:duration="5000"/><alphaandroid:fromAlpha="1.0"android:toAlpha="0.0"android:duration="5000" /></set>
Animation Resource - slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false" ><translateandroid:duration="5000"android:fromXDelta="-100%"android:toXDelta="0%"/><alphaandroid:duration="5000"android:fromAlpha="0.0"android:toAlpha="1.0" /></set>
Animation Resource - slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false" ><translateandroid:duration="5000"android:fromXDelta="100%"android:toXDelta="0%" /><alphaandroid:duration="5000"android:fromAlpha="0.0"android:toAlpha="1.0" /></set>
Animation Resource - slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false" ><translateandroid:duration="5000"android:fromXDelta="0%"android:toXDelta="-100%"/><alphaandroid:duration="5000"android:fromAlpha="1.0"android:toAlpha="0.0" /></set>
Animation Resource - slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false" ><translateandroid:duration="5000"android:fromXDelta="0%"android:toXDelta="100%"/><alphaandroid:duration="5000"android:fromAlpha="1.0"android:toAlpha="0.0" /></set>
Solution 2:
You can do Your own Animation style as an xml file like this(put it in anim folder):
left to right:
<setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><translateandroid:fromXDelta="-100%"android:toXDelta="0%"android:fromYDelta="0%"android:toYDelta="0%"android:duration="500"/></set>
right to left:
<setxmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><translateandroid:fromXDelta="0%"android:toXDelta="100%"android:fromYDelta="0%"android:toYDelta="0%"android:duration="500" /></set>
here You can set Your own values at duration, maybe it depends on the phone model how the animation will look like, try some values out if it looks not good.
and then You can call it in Your activity:
Intent animActivity = newIntent(this,YourStartAfterAnimActivity.class);
startActivity(nextActivity);
overridePendingTransition(R.anim.your_left_to_right, R.anim.your_right_to_left);
Solution 3:
For sliding both activity (old and new) same direction:
left_in.xml
<?xml version="1.0" encoding="utf-8"?><translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromXDelta="-100%"android:toXDelta="0%"android:interpolator="@android:anim/decelerate_interpolator"
/>
right_in.xml
<?xml version="1.0" encoding="utf-8"?><translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromXDelta="100%"android:toXDelta="0%"android:interpolator="@android:anim/decelerate_interpolator"
/>
left_out.xml
<?xml version="1.0" encoding="utf-8"?><translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromXDelta="0%"android:interpolator="@android:anim/decelerate_interpolator"android:toXDelta="-100%" />
right_out.xml
<?xml version="1.0" encoding="utf-8"?><translatexmlns:android="http://schemas.android.com/apk/res/android"android:duration="300"android:fromXDelta="0%"android:interpolator="@android:anim/decelerate_interpolator"android:toXDelta="100%" />
startActivity transition:
overridePendingTransition(R.anim.right_in, R.anim.left_out);
onBackPressed transition:
overridePendingTransition(R.anim.left_in, R.anim.right_out);
Solution 4:
The easiest way I found is using Activity Transitions
, it is really easy
Override onCreate
method in activity you want to run with animation:
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Slideslide=newSlide();
slide.setSlideEdge(Gravity.RIGHT);
getWindow().setEnterTransition(slide);
}
super.onCreate(savedInstanceState);
}
Then start it using transitions (instead activity.startActivity(context)):
activity.startActivity(starter, ActivityOptions.makeSceneTransitionAnimation(activity).toBundle());
For closing activity with animation instead using this.finish() use below code:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getActivity().finishAfterTransition();
} else getActivity().finish();
For more information check below links:
Solution 5:
See this link.. you can see so many kinds of animations here, just copy the xml to your res/anim folder and use it like the following..
listView.setAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_right));
Post a Comment for "Slide Right To Left Android Animations"