我正在做屏幕上的气泡动画,但气泡在动画时间结束后停止。如何重复动画或使其无限大?
bub.animate();
bub.animate().x(x2).y(y2);
bub.animate().setDuration(animationTime);
bub.animate().setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
animators.add(animation);
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
});发布于 2014-08-17 08:08:51
因为ViewPropertyAnimator只适用于简单的动画,所以使用更高级的ObjectAnimator类--基本上是setRepeatCount方法,另外还有setRepeatMode。
发布于 2016-01-06 22:01:16
这实际上是可能的。以下是旋转视图的示例:
final ViewPropertyAnimator animator = view.animate().rotation(360).setInterpolator(new LinearInterpolator()).setDuration(1000);
animator.setListener(new android.animation.Animator.AnimatorListener() {
...
@Override
public void onAnimationEnd(final android.animation.Animator animation) {
animation.setListener(null);
view.setRotation(0);
view.animate().rotation(360).setInterpolator(new LinearInterpolator()).setDuration(1000).setListener(this).start();
}
});您也可以使用"withEndAction(http://developer.android.com/reference/android/view/ViewPropertyAnimator.html#withEndAction(java.lang.Runnable%29)“而不是侦听器。
发布于 2016-11-03 00:41:50
您可以使用CycleInterpolator。例如,如下所示:
int durationMs = 60000;
int cycleDurationMs = 1000;
view.setAlpha(0f);
view.animate().alpha(1f)
.setInterpolator(new CycleInterpolator(durationMs / cycleDurationMs))
.setDuration(durationMs)
.start();https://stackoverflow.com/questions/25345129
复制相似问题