暫時貼一段代碼,沒有時間去描述修改,後續有時間再處理。
ps:bgColorN、bgColorY是十進制顏色值
//初始化切換動畫
if(changeStateBgAnimator == null){
if(isOpen){
changeStateBgAnimator = ObjectAnimator.ofObject(1,TAG,new ArgbEvaluator(),bgColorN,bgColorY);
}else {
changeStateBgAnimator = ObjectAnimator.ofObject(1,TAG,new ArgbEvaluator(),bgColorY,bgColorN);
}
changeStateBgAnimator.setDuration(changeAnimMill);
changeStateBgAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
changeStateBgAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
paintBg.setColor((int)valueAnimator.getAnimatedValue());
postInvalidate();
}
});
}
//根據狀態設置切換動畫的顏色變更
if(isOpen){
changeStateBgAnimator.setObjectValues(bgColorN,bgColorY);
}else {
changeStateBgAnimator.setObjectValues(bgColorY ,bgColorN);
}
//開啓動畫
changeStateBgAnimator.start();