首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恒速Android ObjectAnimator

恒速Android ObjectAnimator
EN

Stack Overflow用户
提问于 2019-08-14 07:30:06
回答 1查看 663关注 0票数 0

我用ObjectAnimator将我的视野从0度旋转到360度。但是旋转的速度不是恒定的。我需要一个恒定的速度,因为动画应该重复几次。任何速度的加速都会干扰动画的一致性。这是我的密码:

代码语言:javascript
复制
ObjectAnimator animRotate = ObjectAnimator.ofFloat(ivLoader,"rotation", 0,360);
animRotate.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationEnd(Animator animation) {
            animRotate.start();
        }
});
animRotate.start();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 07:36:04

查看插补器类,ValueAnimator的默认类(ObjectAnimator正在扩展它)是:

代码语言:javascript
复制
private static final TimeInterpolator sDefaultInterpolator =
        new AccelerateDecelerateInterpolator();

它将在“开始阶段”加速,并最终退出。你想要线性插值,所以:

代码语言:javascript
复制
ObjectAnimator animRotate = ...
animRotate.setInterpolator(new LinearInterpolator());
animRotate.addListener(... // rest of code

但是请考虑用以下方式替换AnimatorListener

代码语言:javascript
复制
animRotate.setRepeatMode(ValueAnimator.INFINITE);

还有setRepeatCount方法

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57490027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档