1

我正在尝试为 Android 应用创建自定义进度条。我创建了一个带有路径和两个同心圆的drawable。这个想法是红色部分将填满圆的圆周,当它接近 0 度标记时,它将再次重新启动。问题是圆圈很好地填满了它应该如何,但它没有重新启动。控制这种行为的是一个 ValueAnimator,它以某种方式使驻留在图像视图上的可绘制对象无效。这是drawable应该尝试完成的图片。在此处输入图像描述

我已尽力调整此 Value-Animator 的代码,但它并没有做应该做的事情。这是 Value-Animator 的代码:

ValueAnimator val = ValueAnimatro.ofInt(0,360);
val.setDuration(1000);
val.setRepeatCount(ValueAnimator.INFINITE);
val.setRepeatMode(ValueAnimator.REPEAT);

val.addUpdateListener(...){

public void onAnimationUpdate(ValueAnimator c){

int a = (int)updatedAnimation.getAnimatedValue();
if(a!=0){
                float b = 1f*a;
                ProgressShow.sweepAngle = b;

                image45.invalidateDrawable(image45.getDrawable());
            }

现在,ProgressShow 是可绘制类的名称,ProgressShow.sweepAngle 是绘制路径时在 onCanvas 方法中使用的变量。它的用法如下:

path.arcTo(0,sweepAngle);

sweepAngle 变量在 ValueAnimator 的 onAnimationUpdate 方法中不断变化。

任何想法为什么红环在 360 度附近停止,当它应该基于 ValueAnimator 的性质是无限重复计数和重新启动的重复模式时重新启动。

感谢您的建议

4

0 回答 0