Пример #1
0
 /** Return to initial state */
 public void finish(int finishMode) {
   if (!mAttached) {
     return;
   }
   mTextHint.setVisibility(View.GONE);
   if (finishMode == FINISH_SLIDE_OUT) {
     PropertyValuesHolder slideX =
         PropertyValuesHolder.ofFloat(
             "translationX", new float[] {0.0f, mScreenshotView.getWidth()});
     mSlideoutAnimator = ObjectAnimator.ofPropertyValuesHolder(mScreenshotView, slideX);
     mSlideoutAnimator.setInterpolator(new AccelerateInterpolator());
     mSlideoutAnimator.setDuration(SLIDE_OUT_DURATION_MS);
     mSlideoutAnimator.addListener(this);
     mSlideoutAnimator.start();
   } else {
     float currentScale = mScreenshotView.getScaleX();
     float currentAlpha = mScreenshotView.getAlpha();
     PropertyValuesHolder scaleUpX =
         PropertyValuesHolder.ofFloat("scaleX", new float[] {currentScale, 1.0f});
     PropertyValuesHolder scaleUpY =
         PropertyValuesHolder.ofFloat("scaleY", new float[] {currentScale, 1.0f});
     PropertyValuesHolder scaleUpAlpha =
         PropertyValuesHolder.ofFloat("alpha", new float[] {currentAlpha, 1.0f});
     mScaleUpAnimator =
         ObjectAnimator.ofPropertyValuesHolder(mScreenshotView, scaleUpX, scaleUpY, scaleUpAlpha);
     mScaleUpAnimator.setInterpolator(new DecelerateInterpolator());
     mScaleUpAnimator.setDuration(SCALE_UP_DURATION_MS);
     mScaleUpAnimator.addListener(this);
     mScaleUpAnimator.start();
   }
 }
Пример #2
0
  /** Show post-send animation */
  public void showPostSend() {
    if (!mAttached) {
      return;
    }

    mSlowSendAnimator.cancel();
    mTextHint.setVisibility(View.GONE);

    float currentScale = mScreenshotView.getScaleX();

    // Modify the fast clone parameters to match the current scale
    PropertyValuesHolder postX =
        PropertyValuesHolder.ofFloat("scaleX", new float[] {currentScale, 0.0f});
    PropertyValuesHolder postY =
        PropertyValuesHolder.ofFloat("scaleY", new float[] {currentScale, 0.0f});
    PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", new float[] {1.0f, 0.0f});
    mFastCloneAnimator.setValues(postX, postY, alpha);

    // Modify the fadeIn parameters to match the current scale
    PropertyValuesHolder fadeIn = PropertyValuesHolder.ofFloat("alpha", new float[] {0.0f, 1.0f});
    mFadeInAnimator.setValues(fadeIn);

    if (mFireflyRenderThread != null) {
      mFireflyRenderThread.fadeOut();
    }

    mSuccessAnimatorSet.start();
  }
Пример #3
0
 private ImageView cloneImageView(ImageView view) {
   ImageView result = new ImageView(this);
   result.setX(view.getX());
   result.setY(view.getY());
   result.setScaleType(view.getScaleType());
   result.setScaleX(view.getScaleX());
   result.setScaleY(view.getScaleY());
   result.setImageDrawable(view.getDrawable());
   return result;
 }