我想设置一个FloatingActionButton的backgroundTint值(理想情况下也是alpha值)的动画,以便FAB背景颜色在两种颜色之间连续切换.
我的noob方法是使用一个定时器来调用一个函数,当它触发时更新这个属性.我确定有更好的方法吗?
use*_*776 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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |