繁体   English   中英

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类,它基本上setRepeatCount您的需求:方法setRepeatCountsetRepeatMode

如果你仍然想使用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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM