// 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(); } }