Android ValueAnimator未正确使drawable无效

Android ValueAnimator未正确使drawable无效,android,animation,android-animation,android-drawable,viewpropertyanimator,Android,Animation,Android Animation,Android Drawable,Viewpropertyanimator,我正在尝试为Android应用程序创建自定义进度条。 我创建了一个带有一条路径和两个同心圆的绘图平台。这个想法是 红色部分将填充圆的周长 它接近0度标记,将再次重新启动。问题是 圆圈会很好地填满,但不会重新启动。 控制此行为的是ValueAnimator,它以某种方式使驻留在图像视图上的可绘制对象无效。下面是drawable应该尝试完成的任务的图片 我已经尽了最大努力来调整这个值Animator的代码,但它并没有达到预期的效果。以下是值Animator的代码: ValueAnimator val

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

我已经尽了最大努力来调整这个值Animator的代码,但它并没有达到预期的效果。以下是值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方法中不断更改

根据ValueAnimator无限重复计数的性质和重新启动的重复模式,您知道为什么红环会在360度附近停止,何时应该重新启动吗


谢谢你的建议

我想你可能是对的。让我试试@我想我知道问题在哪里。一旦drawable显示在屏幕上,它需要向onCreate中的静态处理程序发送消息,以便将image45可见性设置为不可见。但是,我将此调用放在可绘制的构造函数中。在构造函数初始化和绘图开始之间,消息似乎被发送到取消动画的onCreate处理程序。我需要找另一个地方取消动画。我需要知道屏幕上绘图的时刻。你知道怎么检测这个吗@阿齐兹比基亚诺,这不是问题所在。不取消动画并不能证明红环会一直画在圆的周围。我想你可能是对的。让我试试@我想我知道问题在哪里。一旦drawable显示在屏幕上,它需要向onCreate中的静态处理程序发送消息,以便将image45可见性设置为不可见。但是,我将此调用放在可绘制的构造函数中。在构造函数初始化和绘图开始之间,消息似乎被发送到取消动画的onCreate处理程序。我需要找另一个地方取消动画。我需要知道屏幕上绘图的时刻。你知道怎么检测这个吗@阿齐兹比基亚诺,这不是问题所在。不取消动画并不能证明红环会一直围绕着圆的圆周画。