我想要对FloatingActionButton的backgroundTint值(最好还有alpha值)进行动画处理,使FAB背景颜色不断地在两种颜色之间切换。
我的方法是使用定时器来调用一个更新该属性的函数。但我相信应该有更好的方法做到这一点?
我想要对FloatingActionButton的backgroundTint值(最好还有alpha值)进行动画处理,使FAB背景颜色不断地在两种颜色之间切换。
我的方法是使用定时器来调用一个更新该属性的函数。但我相信应该有更好的方法做到这一点?
我按照@MH.的建议使用ObjectAnimator使其工作,但我必须重写onAnimationUpdate()回调函数:
final ValueAnimator animator = ValueAnimator.ofInt(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();
animation.getAnimatedValue
,我该如何使用它呢? - android developerValueAnimator.ofObject
,并使用ArgbEvaluator
代替:ValueAnimator.ofObject(ArgbEvaluatorCompat.getInstance(), prevColor, newColor).start();
- BamsBamx