Android-旋转和填充动画

Android-旋转和填充动画,android,animation,Android,Animation,我想知道如何顺时针填充视图 我知道了如何旋转图像,但不确定如何旋转和填充。使用此类创建了一个圆: public class Circle extends View { private static final int START_ANGLE_POINT = 270; private final Paint paint; private RectF rect; private float angle; public Circle(Context context, Att

我想知道如何顺时针填充视图


我知道了如何旋转图像,但不确定如何旋转和填充。

使用此类创建了一个圆:

public class Circle extends View {

  private static final int START_ANGLE_POINT = 270;

  private final Paint paint;
  private RectF rect;

  private float angle;

  public Circle(Context context, AttributeSet attrs) {
      super(context, attrs);

      final int strokeWidth = 60;

      Point[] points = new Point[3];
      points[0] = new Point(7, 13);
      points[1] = new Point(13, 19);
      points[2] = new Point(21, 9);

      paint = new Paint();
      paint.setAntiAlias(true);
      paint.setStyle(Paint.Style.FILL);
      //Circle color
      paint.setColor(Theme.darkRedColour());

      //Initial Angle (optional, it can be zero)
      angle = 0;
  }

  @Override
  protected void onDraw(Canvas canvas) {

      if (rect == null) {

          DisplayMetrics metrics =  App.getAppContext().getResources().getDisplayMetrics();
          int densityDpi = (int)metrics.density;
          densityDpi = 3;

          int canvasW = getWidth();
          int canvasH = getHeight();
          Point centerOfCanvas = new Point(canvasW / 2, canvasH / 2);
          int rectW = 100; // * (densityDpi - 1);
          int rectH = 100; // * (densityDpi - 1);
          int left = centerOfCanvas.x - (rectW / 2);
          int top = centerOfCanvas.y - (rectH / 2);
          int right = centerOfCanvas.x + (rectW / 2);
          int bottom = centerOfCanvas.y + (rectH / 2);
          rect = new RectF(left, top, right, bottom);
      }

      super.onDraw(canvas);

      canvas.drawArc(rect, START_ANGLE_POINT, angle, true, paint);
  }

  public float getAngle() {
      return angle;
  }

  public void setAngle(float angle) {
      this.angle = angle;
  }
  }
然后使用AnimationListener并更新角度