FloatingActionButton backgroundTint动画

时间:2016-02-19 19:35:10

标签: android

我想设置FloatingActionButton的backgroundTint值(理想情况下也是alpha值)的动画,以便FAB背景颜色在两种颜色之间连续切换。

我的noob方法是使用一个定时器来调用一个在触发时更新该属性的函数。我确定有更好的方法吗?

1 个答案:

答案 0 :(得分:11)

我按照@MH的建议使用ObjectAnimator工作。上面,但我不得不重写onAnimationUpdate()回调:

final ObjectAnimator animator = ObjectAnimator.ofInt(fab, "backgroundTint", Color.rgb(0, 121, 107), Color.rgb(226, 143, 34));
animator.setDuration(2000L);
animator.setEvaluator(new ArgbEvaluator());
animator.setInterpolator(new DecelerateInterpolator(2));
animator.addUpdateListener(new ObjectAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        int animatedValue = (int) animation.getAnimatedValue();
        fab.setBackgroundTintList(ColorStateList.valueOf(animatedValue));
    }
});
animator.start();