Android 运行 循环动画 view.animate()
Android run animation in loop with view.animate()
我想启动一个按钮的动画。动画效果很好,但我希望动画会重复。我怎样才能做到这一点?几天来我一直在寻找答案。
我的代码:
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Start the animation
v.animate().setDuration(200)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
}
})
// Rotate
.rotation(rotated ? 0f : 135f)
// Move up in first click, and down in second
.translationY(rotated ? 0f : -200f);
rotated = !rotated;
}
});
我可以“永远”重复这个动画吗?
ViewPropertyAnimator 主要用于良好的基础知识。尝试使用更高级的ObjectAnimator
class which gives you basically what you need: method setRepeatCount
and additionally setRepeatMode
.
如果您仍想使用 view.animate()
,您可以像这样编写一些技巧:
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
repeatAnimation(v);
}
});
private void repeatAnimation(View v) {
// Start the animation
v.animate().setDuration(200)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
rotated = !rotated;
repeatAnimation(v);
}
})
// Rotate
.rotation(rotated ? 0f : 135f)
// Move up in first click, and down in second
.translationY(rotated ? 0f : -200f);
}
我想启动一个按钮的动画。动画效果很好,但我希望动画会重复。我怎样才能做到这一点?几天来我一直在寻找答案。 我的代码:
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Start the animation
v.animate().setDuration(200)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
}
})
// Rotate
.rotation(rotated ? 0f : 135f)
// Move up in first click, and down in second
.translationY(rotated ? 0f : -200f);
rotated = !rotated;
}
});
我可以“永远”重复这个动画吗?
ViewPropertyAnimator 主要用于良好的基础知识。尝试使用更高级的ObjectAnimator
class which gives you basically what you need: method setRepeatCount
and additionally setRepeatMode
.
如果您仍想使用 view.animate()
,您可以像这样编写一些技巧:
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
repeatAnimation(v);
}
});
private void repeatAnimation(View v) {
// Start the animation
v.animate().setDuration(200)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
rotated = !rotated;
repeatAnimation(v);
}
})
// Rotate
.rotation(rotated ? 0f : 135f)
// Move up in first click, and down in second
.translationY(rotated ? 0f : -200f);
}