public void dismissCard(final View downView, final int position) { float viewWidth = downView.getMeasuredWidth(); ++mDismissAnimationRefCount; animate(downView) .translationX(viewWidth) .alpha(0) .setDuration(mAnimationTime) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { performDismiss(downView, position); } }); }
/** * @param view * 所要移动的视图 * @param deltaX * 最终移动的距离 */ public void generateRevealAnimate(final View view, float deltaX) { int moveTo = 0; moveTo = (int) deltaX; animate(view).translationX(moveTo).setDuration(10) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { } }); }
.translationX(moveTo) .setDuration(animationTime) .setListener(new AnimatorListenerAdapter() {
/** * Slide out a view to the right or left of the list. After the animation has finished, the * view will be dismissed by calling {@link #performDismiss(android.view.View, android.view.View, int)}. * * @param view The view, that should be slided out. * @param childView The whole view of the list item. * @param position The item position of the item. * @param toRightSide Whether it should slide out to the right side. */ private void slideOutView(final View view, final View childView, final int position, boolean toRightSide) { // Only start new animation, if this view isn't already animated (too fast swiping bug) synchronized(mAnimationLock) { if(mAnimatedViews.contains(view)) { return; } ++mDismissAnimationRefCount; mAnimatedViews.add(view); } ViewPropertyAnimator.animate(view) .translationX(toRightSide ? mViewWidth : -mViewWidth) .alpha(0) .setDuration(mAnimationTime) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { performDismiss(view, childView, position); } }); }
/** * Create choice animation * * @param view affected view * @param position list position */ private void generateChoiceAnimate(final View view, final int position) { animate(view) .translationX(0) .setDuration(animationTime) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { swipeListView.resetScrolling(); resetCell(); } }); }
.translationX(moveTo) .alpha(alpha) .setDuration(animationTime)
++mDismissAnimationRefCount; animate(mDownView) .translationX(dismissRight ? mViewWidth : -mViewWidth) .alpha(0) .setDuration(mAnimationTime) .translationX(0) .alpha(1) .setDuration(mAnimationTime)
.translationX(0) .alpha(1) .setDuration(mAnimationTime) ++mDismissAnimationRefCount; animate(mDownView) .translationX(dismissRight ? mViewWidth : -mViewWidth) .alpha(0) .setDuration(mAnimationTime) .translationX(0) .alpha(1) .setDuration(mAnimationTime)
.translationX(0) .alpha(1) .setDuration(mAnimationTime)
.scaleX((float) thumbnailWidth / mViewPager.getWidth()) .scaleY((float) thumbnailHeight / mViewPager.getHeight()) .translationX(thumbnailLeft) .translationY(thumbnailTop) .setListener(new Animator.AnimatorListener() {
.scaleX(1) .scaleY(1) .translationX(0) .translationY(0) .setInterpolator(new DecelerateInterpolator());