我想设置FloatingActionButton的backgroundTint值(理想情况下也是alpha值)的动画,以便FAB背景颜色在两种颜色之间连续切换。
我的noob方法是使用一个定时器来调用一个在触发时更新该属性的函数。我确定有更好的方法吗?
答案 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();