Android examples for Animation:Animation Creation
Start the animation the reveals the destination Activity
//package com.java2s; import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.app.Activity; import android.graphics.Bitmap; import android.os.Handler; import android.view.View; import android.view.animation.DecelerateInterpolator; import android.widget.ImageView; public class Main { public static Bitmap mBitmap = null; private static ImageView mTopImage; private static ImageView mBottomImage; private static AnimatorSet mSetAnim; public static void animate(final Activity destActivity, final int duration, final TimeInterpolator interpolator) { new Handler().post(new Runnable() { @Override//w ww . j av a2s. co m public void run() { mSetAnim = new AnimatorSet(); mTopImage.setLayerType(View.LAYER_TYPE_HARDWARE, null); mBottomImage.setLayerType(View.LAYER_TYPE_HARDWARE, null); mSetAnim.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { clean(destActivity); } @Override public void onAnimationCancel(Animator animation) { clean(destActivity); } @Override public void onAnimationRepeat(Animator animation) { } }); // Animating the 2 parts away from each other Animator anim1 = ObjectAnimator.ofFloat(mTopImage, "translationY", mTopImage.getHeight() * -1); Animator anim2 = ObjectAnimator.ofFloat(mBottomImage, "translationY", mBottomImage.getHeight()); if (interpolator != null) { anim1.setInterpolator(interpolator); anim2.setInterpolator(interpolator); } mSetAnim.setDuration(duration); mSetAnim.playTogether(anim1, anim2); mSetAnim.start(); } }); } public static void animate(final Activity destActivity, final int duration) { animate(destActivity, duration, new DecelerateInterpolator()); } private static void clean(Activity activity) { if (mTopImage != null) { mTopImage.setLayerType(View.LAYER_TYPE_NONE, null); try { // If we use the regular removeView() we'll get a small UI glitch activity.getWindowManager().removeViewImmediate( mBottomImage); } catch (Exception ignored) { } } if (mBottomImage != null) { mBottomImage.setLayerType(View.LAYER_TYPE_NONE, null); try { activity.getWindowManager().removeViewImmediate(mTopImage); } catch (Exception ignored) { } } mBitmap = null; } }