在 android 中设置背景颜色时设置动画

Animate while setBackgroundColor in android

我正在开发自定义步进器。 一切正常。

我现在想做的是在填充当前步骤的同时为步进器设置动画。

这张图片展示了我的想法:

这是我设置线条颜色、标题和图标 src 的代码:

private void DrawStepper(int position) {
    switch (position) {

        case 0:
            imgStepShipper.setImageResource(R.drawable.ic_current_step);
            txtStepShipper.setTextColor(getResources().getColor(R.color.colorPrimary));
            line.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepConsignee.setImageResource(R.drawable.ic_unselected_step);
            txtStepConsignee.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));
            line2.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepShipment.setImageResource(R.drawable.ic_unselected_step);
            txtStepShipment.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));
            line3.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepCharges.setImageResource(R.drawable.ic_unselected_step);
            txtStepCharges.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));

            break;

        case 1:
            imgStepShipper.setImageResource(R.drawable.ic_done_step);
            txtStepShipper.setTextColor(getResources().getColor(R.color.colorPrimary));
            line.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepConsignee.setImageResource(R.drawable.ic_current_step);
            txtStepConsignee.setTextColor(getResources().getColor(R.color.colorPrimary));
            line2.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepShipment.setImageResource(R.drawable.ic_unselected_step);
            txtStepShipment.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));
            line3.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepCharges.setImageResource(R.drawable.ic_unselected_step);
            txtStepCharges.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));

            break;

        case 2:
            imgStepShipper.setImageResource(R.drawable.ic_done_step);
            txtStepShipper.setTextColor(getResources().getColor(R.color.colorPrimary));
            line.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepConsignee.setImageResource(R.drawable.ic_done_step);
            txtStepConsignee.setTextColor(getResources().getColor(R.color.colorPrimary));
            line2.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepShipment.setImageResource(R.drawable.ic_current_step);
            txtStepShipment.setTextColor(getResources().getColor(R.color.colorPrimary));
            line3.setBackgroundColor(getResources().getColor(R.color.colorDarkWhite));

            imgStepCharges.setImageResource(R.drawable.ic_unselected_step);
            txtStepCharges.setTextColor(getResources().getColor(R.color.colorDarkSuperWhite));

            break;

        case 3:
            imgStepShipper.setImageResource(R.drawable.ic_done_step);
            txtStepShipper.setTextColor(getResources().getColor(R.color.colorPrimary));
            line.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepConsignee.setImageResource(R.drawable.ic_done_step);
            txtStepConsignee.setTextColor(getResources().getColor(R.color.colorPrimary));
            line2.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepShipment.setImageResource(R.drawable.ic_done_step);
            txtStepShipment.setTextColor(getResources().getColor(R.color.colorPrimary));
            line3.setBackgroundColor(getResources().getColor(R.color.colorPrimary));

            imgStepCharges.setImageResource(R.drawable.ic_current_step);
            txtStepCharges.setTextColor(getResources().getColor(R.color.colorPrimary));
            break;
    }
}

位置是当前步骤。

这是我的 UI:

正如我所说,每次从一步移动到另一步时,我都想为线条设置动画。

谢谢:)

好吧,您可以将该行设置为进度条并设置其进度的动画。

动画是这样完成的: Animate ProgressBar update in Android

或者您可以为视图背景设置动画,只需使用带有动画的可绘制对象,请查看此处: Animate change of view background color on Android