我试图更改视图的背景颜色。我写了一些代码,我可以用动画改变颜色,但第一次我的视图在颜色变化之前就冻结了。这是我的代码
private void changeBackgroundColorWithAnimation(int duration, final View view, int startColor, int endColor) {
ValueAnimator anim = new ValueAnimator();
anim.setIntValues(startColor, endColor);
anim.setEvaluator(new ArgbEvaluator());
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(final ValueAnimator valueAnimator) {
view.setBackgroundColor((Integer) valueAnimator.getAnimatedValue());
}
});
anim.setDuration(duration);
anim.start();
}
我这样称呼我的功能:
changeBackgroundColorWithAnimation(300, TransferFragmentNewVersion.rootLayout,
Color.parseColor("#E6000000"), Color.WHITE);
正如我所说,背景颜色已经改变,但第一次View是冻结的(只是第一次)l
如何解决我的问题?谢谢大家。
答案 0 :(得分:0)
为什么不将视图的初始颜色作为起始颜色发送?
您可以将Color.parseColor("#E6000000")
替换为TransferFragmentNewVersion.rootLayout.getSolidColor()
。
您可以发布更多代码吗?