Ejemplo n.º 1
0
  private void hideTargets(boolean animate, boolean expanded) {
    mTargetAnimations.cancel();
    // Note: these animations should complete at the same time so that we
    // can swap out
    // the target assets asynchronously from the setTargetResources() call.
    mAnimatingTargets = animate;
    final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
    final int delay = animate ? HIDE_ANIMATION_DELAY : 0;

    final float targetScale = expanded ? TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
    final int length = mTargetDrawables.size();

    final TimeInterpolator interpolator = Ease.Cubic.easeOut;
    for (int i = 0; i < length; i++) {
      TargetDrawable target = mTargetDrawables.get(i);
      target.setState(TargetDrawable.STATE_INACTIVE);
      mTargetAnimations.add(
          Tweener.to(
              target,
              duration,
              "ease",
              interpolator,
              "alpha",
              0.0f,
              "scaleX",
              targetScale,
              "scaleY",
              targetScale,
              "delay",
              delay,
              "onUpdate",
              mUpdateListener));
    }

    final float ringScaleTarget = expanded ? RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
    mTargetAnimations.add(
        Tweener.to(
            mOuterRing,
            duration,
            "ease",
            interpolator,
            "alpha",
            0.0f,
            "scaleX",
            ringScaleTarget,
            "scaleY",
            ringScaleTarget,
            "delay",
            delay,
            "onUpdate",
            mUpdateListener,
            "onComplete",
            mTargetUpdateListener));

    mTargetAnimations.start();
  }
  private void showTargets(boolean animate) {
    mTargetAnimations.stop();
    mAnimatingTargets = animate;
    final int delay = animate ? SHOW_ANIMATION_DELAY : 0;
    final int duration = animate ? SHOW_ANIMATION_DURATION : 0;
    final int length = mTargetDrawables.size();
    for (int i = 0; i < length; i++) {
      TargetDrawable target = mTargetDrawables.get(i);
      target.setState(TargetDrawable.STATE_INACTIVE);
      mTargetAnimations.add(
          Tweener.to(
              target,
              duration,
              "ease",
              Ease.Cubic.easeOut,
              "alpha",
              1.0f,
              "scaleX",
              1.0f,
              "scaleY",
              1.0f,
              "delay",
              delay,
              "onUpdate",
              mUpdateListener));
    }

    float ringScale = mRingScaleFactor * RING_SCALE_EXPANDED;
    mTargetAnimations.add(
        Tweener.to(
            mOuterRing,
            duration,
            "ease",
            Ease.Cubic.easeOut,
            "alpha",
            1.0f,
            "scaleX",
            ringScale,
            "scaleY",
            ringScale,
            "delay",
            delay,
            "onUpdate",
            mUpdateListener,
            "onComplete",
            mTargetUpdateListener));

    mTargetAnimations.start();
  }
Ejemplo n.º 3
0
 private void startWaveAnimation() {
   mWaveAnimations.cancel();
   mPointCloud.waveManager.setAlpha(1.0f);
   mPointCloud.waveManager.setRadius(mHandleDrawable.getWidth() / 2.0f);
   mWaveAnimations.add(
       Tweener.to(
           mPointCloud.waveManager,
           WAVE_ANIMATION_DURATION,
           "ease",
           Ease.Quad.easeOut,
           "delay",
           0,
           "radius",
           2.0f * mOuterRadius,
           "onUpdate",
           mUpdateListener,
           "onComplete",
           new AnimatorListenerAdapter() {
             public void onAnimationEnd(Animator animator) {
               mPointCloud.waveManager.setRadius(0.0f);
               mPointCloud.waveManager.setAlpha(0.0f);
             }
           }));
   mWaveAnimations.start();
 }
Ejemplo n.º 4
0
 /**
  * Resets the widget to default state and cancels all animation. If animate is 'true', will
  * animate objects into place. Otherwise, objects will snap back to place.
  *
  * @param animate
  */
 public void reset(boolean animate) {
   mGlowAnimations.stop();
   mTargetAnimations.stop();
   startBackgroundAnimation(0, 0.0f);
   stopAndHideWaveAnimation();
   hideTargets(animate, false);
   hideGlow(0, 0, 0.0f, null);
   Tweener.reset();
 }
Ejemplo n.º 5
0
 private void startBackgroundAnimation(int duration, float alpha) {
   final Drawable background = getBackground();
   if (mAlwaysTrackFinger && background != null) {
     if (mBackgroundAnimator != null) {
       mBackgroundAnimator.animator.cancel();
     }
     mBackgroundAnimator =
         Tweener.to(
             background,
             duration,
             "ease",
             Ease.Cubic.easeIn,
             "alpha",
             (int) (255.0f * alpha),
             "delay",
             SHOW_ANIMATION_DELAY);
     mBackgroundAnimator.animator.start();
   }
 }
Ejemplo n.º 6
0
 private void showGlow(
     int duration, int delay, float finalAlpha, AnimatorListener finishListener) {
   mGlowAnimations.cancel();
   mGlowAnimations.add(
       Tweener.to(
           mPointCloud.glowManager,
           duration,
           "ease",
           Ease.Cubic.easeIn,
           "delay",
           delay,
           "alpha",
           finalAlpha,
           "onUpdate",
           mUpdateListener,
           "onComplete",
           finishListener));
   mGlowAnimations.start();
 }