android.animation.ValueAnimator#addListener ( )源码实例Demo

下面列出了android.animation.ValueAnimator#addListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: text_converter   文件: FloatingView.java
void run() {
    if (mDynamicUpdate == null) {
        mDraggableIcon.animate()
                .translationX(mDestX)
                .translationY(mDestY)
                .setDuration(mDuration)
                .setInterpolator(mInterpolator)
                .setListener(mAnimationFinishedListener);
    } else {
        ValueAnimator animator = ValueAnimator.ofInt(0, 100);
        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float percent = valueAnimator.getAnimatedFraction();
                mDraggableIcon.setTranslationX(mDynamicUpdate.getTranslationX(percent));
                mDraggableIcon.setTranslationY(mDynamicUpdate.getTranslationY(percent));
            }
        });
        animator.setDuration(mDuration);
        animator.setInterpolator(mInterpolator);
        animator.addListener(mAnimationFinishedListener);
        animator.start();
    }
}
 
源代码2 项目: HoldingButton   文件: HoldingButton.java
private ValueAnimator createCollapseValueAnimator() {
    ValueAnimator animator = ValueAnimator.ofFloat(1f, 0f);
    animator.setDuration(DEFAULT_ANIMATION_DURATION_COLLAPSE);
    animator.setInterpolator(new AccelerateInterpolator());
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            mExpandedScaleFactor[0] = (float) valueAnimator.getAnimatedValue();
            invalidate();
        }
    });
    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            notifyCollapsed();
        }
    });
    return animator;
}
 
源代码3 项目: likequanmintv   文件: SplashActivity.java
private void start() {
    rootView = findViewById(R.id.main_root);
    final View viewById = findViewById(R.id.tt);
    ValueAnimator valueAnimator=ValueAnimator.ofFloat(0.3f,1.0f);
    valueAnimator.setDuration(1500);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float alpha = (float) animation.getAnimatedValue();
            rootView.setAlpha(alpha);
            viewById.setScaleX(alpha);
            viewById.setScaleY(alpha);

        }
    });
    valueAnimator.addListener(this);
    valueAnimator.start();
}
 
源代码4 项目: FakeWeather   文件: SnowType.java
@Override
public void endAnimation(DynamicWeatherView dynamicWeatherView, Animator.AnimatorListener listener) {
    super.endAnimation(dynamicWeatherView, listener);
    ValueAnimator animator = ValueAnimator.ofFloat(getWidth() - bitmap.getWidth() * 0.25f, getWidth());
    animator.setDuration(1000);
    animator.setRepeatCount(0);
    animator.setInterpolator(new AccelerateInterpolator());
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            transFactor = (float) animation.getAnimatedValue();
        }
    });
    if (listener != null) {
        animator.addListener(listener);
    }
    animator.start();
}
 
public void perform() {
    ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f);
    valueAnimator.setInterpolator(ANIMATION_INTERP);
    valueAnimator.addUpdateListener(this);
    valueAnimator.addListener(this);
    valueAnimator.start();
}
 
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void performDismiss() {
    // Animate the dismissed view to zero-height and then fire the dismiss callback.
    // This triggers layout on each animation frame; in the future we may want to do something
    // smarter and more performant.

    final ViewGroup.LayoutParams lp = mView.getLayoutParams();
    final int originalHeight = mView.getHeight();

    ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime);

    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            mCallbacks.onDismiss(mView, mToken);
            // Reset view presentation
            mView.setAlpha(1f);
            mView.setTranslationX(0);
            lp.height = originalHeight;
            mView.setLayoutParams(lp);
        }
    });

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            lp.height = (Integer) valueAnimator.getAnimatedValue();
            mView.setLayoutParams(lp);
        }
    });

    animator.start();
}
 
源代码7 项目: MiBandDecompiled   文件: LinePieChartView.java
private Animator b()
{
    ValueAnimator valueanimator = ValueAnimator.ofFloat(new float[] {
        0.0F, 1.0F
    });
    valueanimator.addListener(new l(this));
    valueanimator.addUpdateListener(new m(this));
    valueanimator.setDuration(3500L);
    valueanimator.setInterpolator(new LinearInterpolator());
    valueanimator.setRepeatMode(1);
    valueanimator.setRepeatCount(-1);
    return valueanimator;
}
 
private ValueAnimator createStartAnimator() {
    ValueAnimator valueAnimator = ValueAnimator.ofFloat(1.0f, 0.02f);
    valueAnimator.setDuration(700);
    valueAnimator.setInterpolator(new AccelerateInterpolator());
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            fillValue = (float) animation.getAnimatedValue();
        }
    });
    valueAnimator.addListener(this);
    fillValue = 0.02f;
    return valueAnimator;
}
 
源代码9 项目: Dashchan   文件: ExpandedScreen.java
private void applyShowActionBar(boolean show) {
	ActionBar actionBar = activity.getActionBar();
	if (fullScreenLayoutEnabled) {
		boolean showing = isActionBarShowing();
		ValueAnimator foregroundAnimator = ExpandedScreen.this.foregroundAnimator;
		if (foregroundAnimator != null) {
			foregroundAnimator.cancel();
		}
		if (showing != show) {
			if (toolbarView != null) {
				actionBar.show();
			}
			foregroundAnimator = ValueAnimator.ofFloat(show ? 0f : 1f, show ? 1f : 0f);
			ForegroundAnimatorListener listener = new ForegroundAnimatorListener(show);
			foregroundAnimator.setInterpolator(AnimationUtils.ACCELERATE_DECELERATE_INTERPOLATOR);
			foregroundAnimator.setDuration(ACTION_BAR_ANIMATION_TIME);
			foregroundAnimator.addListener(listener);
			foregroundAnimator.addUpdateListener(listener);
			foregroundAnimator.start();
			ExpandedScreen.this.foregroundAnimator = foregroundAnimator;
			foregroundAnimatorShow = show;
		}
	}
	if (toolbarView == null) {
		if (show) {
			actionBar.show();
		} else {
			actionBar.hide();
		}
	}
}
 
源代码10 项目: WeiXinRecordedDemo   文件: EditVideoActivity.java
/**
 * 执行文字编辑区域动画
 */
private void startAnim(float start, float end, AnimatorListenerAdapter listenerAdapter) {

    ValueAnimator va = ValueAnimator.ofFloat(start, end).setDuration(200);
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float value = (float) animation.getAnimatedValue();
            rl_edit_text.setY(value);
        }
    });
    if (listenerAdapter != null) va.addListener(listenerAdapter);
    va.start();
}
 
源代码11 项目: dynamiclistview   文件: DynamicListLayout.java
private void animate(float fromY, float toY, AnimatorListener listener) {
    ValueAnimator animator = ValueAnimator.ofFloat(fromY, toY);
    animator.setInterpolator(new DecelerateInterpolator());
    animator.setDuration(200);
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            float val = (Float) animation.getAnimatedValue();
            mListFrame.scrollTo(0, (int) val);
            checkPullingState(mListFrame.getScrollY());
        }
    });
    animator.addListener(listener);
    animator.start();
}
 
private void performDismiss() {
  // Animate the dismissed view to zero-height and then fire the dismiss callback.
  // This triggers layout on each animation frame; in the future we may want to do something
  // smarter and more performant.

  final ViewGroup.LayoutParams lp = mView.getLayoutParams();
  final int originalHeight = mView.getHeight();

  ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime);

  animator.addListener(
      new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
          mDismissCallbacks.onDismiss(mView, mToken);
          // Reset view presentation
          mView.setAlpha(1f);
          mView.setTranslationX(0);
          lp.height = originalHeight;
          mView.setLayoutParams(lp);
        }
      });

  animator.addUpdateListener(
      new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
          lp.height = (Integer) valueAnimator.getAnimatedValue();
          mView.setLayoutParams(lp);
        }
      });

  animator.start();
}
 
源代码13 项目: BaseProject   文件: VRefreshLayout.java
private void moveAnimation(int star, int end, int duration, Animator.AnimatorListener animatorListener) {
    ValueAnimator valueAnimator = ValueAnimator.ofInt(star, end);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            int value = (int) animation.getAnimatedValue();
            moveTo(value);
        }
    });
    if (animatorListener != null) {
        valueAnimator.addListener(animatorListener);
    }
    valueAnimator.setDuration(duration);
    valueAnimator.start();
}
 
private void performDismiss() {
    // Animate the dismissed view to zero-height and then fire the dismiss callback.
    // This triggers layout on each animation frame; in the future we may want to do something
    // smarter and more performant.

    final ViewGroup.LayoutParams lp = mView.getLayoutParams();
    final int originalHeight = mView.getHeight();

    ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime);

    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            mCallbacks.onDismiss(mView, mToken);
            // Reset view presentation
            mView.setAlpha(1f);
            mView.setTranslationX(0);
            lp.height = originalHeight;
            mView.setLayoutParams(lp);
        }
    });

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            lp.height = (Integer) valueAnimator.getAnimatedValue();
            mView.setLayoutParams(lp);
        }
    });

    animator.start();
}
 
private void performDismiss() {
    // Animate the dismissed view to zero-height and then fire the dismiss callback.
    // This triggers layout on each animation frame; in the future we may want to do something
    // smarter and more performant.

    final ViewGroup.LayoutParams lp = mView.getLayoutParams();
    final int originalHeight = mView.getHeight();

    ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime);

    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            mCallbacks.onDismiss(mView, mToken);
            // Reset view presentation
            mView.setAlpha(1f);
            mView.setTranslationX(0);
            lp.height = originalHeight;
            mView.setLayoutParams(lp);
        }
    });

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            lp.height = (Integer) valueAnimator.getAnimatedValue();
            mView.setLayoutParams(lp);
        }
    });

    animator.start();
}
 
源代码16 项目: SimpleSearchView   文件: SimpleAnimationUtils.java
public static Animator verticalSlideView(@NonNull View view, int fromHeight, int toHeight, int duration, @Nullable final AnimationListener listener) {
    ValueAnimator anim = ValueAnimator
            .ofInt(fromHeight, toHeight);

    anim.addUpdateListener(animation -> {
        view.getLayoutParams().height = (int) (Integer) animation.getAnimatedValue();
        view.requestLayout();
    });

    anim.addListener(new DefaultActionAnimationListener(view, listener));

    anim.setDuration(duration);
    anim.setInterpolator(getDefaultInterpolator());
    return anim;
}
 
源代码17 项目: IslamicLibraryAndroid   文件: AnimationUtils.java
public static void addBookmarkWithAnimation(@NonNull final View bookmarkImage, Animator.AnimatorListener animatorListener) {
    bookmarkImage.setPivotY(0);
    ValueAnimator moveAnim = ObjectAnimator.ofFloat(bookmarkImage, View.SCALE_Y, 0, 1);
    moveAnim.setDuration(1000);
    moveAnim.setInterpolator(new OvershootInterpolator(BOOKMARK_ANIMATING_OVERSHOOT_TENSION));
    moveAnim.addListener(animatorListener);
    moveAnim.start();
}
 
源代码18 项目: AgentWebX5   文件: AnimProcessor.java
public void animLayoutByTime(int start, int end, AnimatorUpdateListener listener, AnimatorListener animatorListener) {
        ValueAnimator va = ValueAnimator.ofInt(start, end);
        va.setInterpolator(new DecelerateInterpolator());
        va.addUpdateListener(listener);
        va.addListener(animatorListener);
        va.setDuration((int) (Math.abs(start - end) * animFraction));
        va.start();
//        offerToQueue(va);
    }
 
源代码19 项目: android_9.0.0_r45   文件: ViewPropertyAnimator.java
/**
 * Starts the underlying Animator for a set of properties. We use a single animator that
 * simply runs from 0 to 1, and then use that fractional value to set each property
 * value accordingly.
 */
private void startAnimation() {
    if (mRTBackend != null && mRTBackend.startAnimation(this)) {
        return;
    }
    mView.setHasTransientState(true);
    ValueAnimator animator = ValueAnimator.ofFloat(1.0f);
    ArrayList<NameValuesHolder> nameValueList =
            (ArrayList<NameValuesHolder>) mPendingAnimations.clone();
    mPendingAnimations.clear();
    int propertyMask = 0;
    int propertyCount = nameValueList.size();
    for (int i = 0; i < propertyCount; ++i) {
        NameValuesHolder nameValuesHolder = nameValueList.get(i);
        propertyMask |= nameValuesHolder.mNameConstant;
    }
    mAnimatorMap.put(animator, new PropertyBundle(propertyMask, nameValueList));
    if (mPendingSetupAction != null) {
        mAnimatorSetupMap.put(animator, mPendingSetupAction);
        mPendingSetupAction = null;
    }
    if (mPendingCleanupAction != null) {
        mAnimatorCleanupMap.put(animator, mPendingCleanupAction);
        mPendingCleanupAction = null;
    }
    if (mPendingOnStartAction != null) {
        mAnimatorOnStartMap.put(animator, mPendingOnStartAction);
        mPendingOnStartAction = null;
    }
    if (mPendingOnEndAction != null) {
        mAnimatorOnEndMap.put(animator, mPendingOnEndAction);
        mPendingOnEndAction = null;
    }
    animator.addUpdateListener(mAnimatorEventListener);
    animator.addListener(mAnimatorEventListener);
    if (mStartDelaySet) {
        animator.setStartDelay(mStartDelay);
    }
    if (mDurationSet) {
        animator.setDuration(mDuration);
    }
    if (mInterpolatorSet) {
        animator.setInterpolator(mInterpolator);
    }
    animator.start();
}
 
源代码20 项目: DanDanPlayForAndroid   文件: SwitchThemeAnimView.java
private ValueAnimator getAnimator() {
    ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, mMaxRadius).setDuration(mDuration);
    valueAnimator.addUpdateListener(mAnimatorUpdateListener);
    valueAnimator.addListener(mAnimatorListener);
    return valueAnimator;
}