Esempio n. 1
0
 // TextView visibility toggle
 public void toggleDebugWindow(View view) {
   float alpha = textView.getAlpha();
   if (alpha == 0f) {
     textView.animate().alpha(1f).setDuration(animationDuration);
   } else {
     textView.animate().alpha(0f).setDuration(animationDuration);
   }
 }
    /** 设置动画渐入渐出的效果 */
    private void setUpMonthOverlay() {
      // 设置月份为不显示
      mTxtMonth.setVisibility(View.GONE);

      // 判断是否为拖拽状态,若为拖拽则为透明状态
      if (isDragging()) {
        // 动画集合(透明)
        AnimatorSet animatorSetFadeIn = new AnimatorSet();
        animatorSetFadeIn.setDuration(FADE_DURATION);
        // ObjectAnimator在动画的过程中自动更新属性值,这是通过调用该属性的set方法来实现
        // ofFloat,因为参数是float型的
        // 参数:View目标对象,对象标识名,动画参数起始值,动画参数结束值
        ObjectAnimator animatorTxtAlphaIn =
            ObjectAnimator.ofFloat(mTxtMonth, "alpha", mTxtMonth.getAlpha(), 1f);
        ObjectAnimator animatorBackgroundAlphaIn =
            ObjectAnimator.ofFloat(mMonthBackground, "alpha", mMonthBackground.getAlpha(), 1f);
        // 一起执行动画
        animatorSetFadeIn.playTogether(animatorTxtAlphaIn, animatorBackgroundAlphaIn);
        animatorSetFadeIn.addListener(
            new Animator.AnimatorListener() {
              @Override
              public void onAnimationStart(Animator animation) {}

              @Override
              public void onAnimationEnd(Animator animation) {
                setAlphaSet(true);
              }

              @Override
              public void onAnimationCancel(Animator animation) {}

              @Override
              public void onAnimationRepeat(Animator animation) {}
            });
        animatorSetFadeIn.start();
      } else { // 若不是拖拽则为显示状态
        // 动画集合(显示)
        AnimatorSet animatorSetFadeOut = new AnimatorSet();
        animatorSetFadeOut.setDuration(FADE_DURATION);
        ObjectAnimator animatorTxtAlphaOut =
            ObjectAnimator.ofFloat(mTxtMonth, "alpha", mTxtMonth.getAlpha(), 0f);
        ObjectAnimator animatorBackgroundAlphaOut =
            ObjectAnimator.ofFloat(mMonthBackground, "alpha", mMonthBackground.getAlpha(), 0f);
        animatorSetFadeOut.playTogether(animatorTxtAlphaOut, animatorBackgroundAlphaOut);
        animatorSetFadeOut.addListener(
            new Animator.AnimatorListener() {
              @Override
              public void onAnimationStart(Animator animation) {}

              @Override
              public void onAnimationEnd(Animator animation) {
                setAlphaSet(false);
              }

              @Override
              public void onAnimationCancel(Animator animation) {}

              @Override
              public void onAnimationRepeat(Animator animation) {}
            });
        animatorSetFadeOut.start();
      }
    }