UNPKG

@nativescript/core

Version:

A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.

90 lines 4.45 kB
import { Transition } from '.'; //http://developer.android.com/training/animation/cardflip.html export class FlipTransition extends Transition { constructor(direction, duration, curve) { super(duration, curve); this._direction = direction; } createAndroidAnimator(transitionType) { let objectAnimators; let values; let animator; //android.animation.ObjectAnimator; const animatorSet = new android.animation.AnimatorSet(); const fullDuration = this.getDuration() || 300; const interpolator = this.getCurve(); const rotationY = this._direction === 'right' ? 180 : -180; switch (transitionType) { case Transition.AndroidTransitionType.enter: // card_flip_right_in objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); values[0] = rotationY; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'rotationY', values); animator.setInterpolator(interpolator); animator.setDuration(fullDuration); objectAnimators[0] = animator; values = Array.create('float', 3); values[0] = 0.0; values[1] = 0.0; values[2] = 255.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'alpha', values); animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; case Transition.AndroidTransitionType.exit: // card_flip_right_out objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); values[0] = 0.0; values[1] = -rotationY; animator = android.animation.ObjectAnimator.ofFloat(null, 'rotationY', values); animator.setInterpolator(interpolator); animator.setDuration(fullDuration); objectAnimators[0] = animator; values = Array.create('float', 3); values[0] = 255.0; values[1] = 0.0; values[2] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'alpha', values); animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; case Transition.AndroidTransitionType.popEnter: // card_flip_left_in objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); values[0] = -rotationY; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'rotationY', values); animator.setInterpolator(interpolator); animator.setDuration(fullDuration); objectAnimators[0] = animator; values = Array.create('float', 3); values[0] = 0.0; values[1] = 0.0; values[2] = 255.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'alpha', values); animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; case Transition.AndroidTransitionType.popExit: // card_flip_left_out objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); values[0] = 0.0; values[1] = rotationY; animator = android.animation.ObjectAnimator.ofFloat(null, 'rotationY', values); animator.setInterpolator(interpolator); animator.setDuration(fullDuration); objectAnimators[0] = animator; values = Array.create('float', 3); values[0] = 255.0; values[1] = 0.0; values[2] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, 'alpha', values); animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; } animatorSet.playTogether(objectAnimators); return animatorSet; } } //# sourceMappingURL=flip-transition.android.js.map