我正在尝试为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的性质是无限重复计数和重复重启模式。
感谢任何建议