Начальный путь RoundRect с DashPathEffect из центра

Я пытаюсь нарисовать путь прогресса, используя DashPathEffect и путь с круглым прямоугольником. Каждый раз, когда я получаю обновление прогресса, я обновляю путь, используя фазу.

  private void updatePath(float phase) {
    path.reset();
    RectF rect = new RectF(0, 0, getWidth(), getHeight());
    rect.inset(progressInset, progressInset);
    path.addRoundRect(rect, progressRadius, progressRadius, Path.Direction.CW);

    PathMeasure pathMeasure = new PathMeasure(path, false);
    length = pathMeasure.getLength();

    intervals[0] = length;
    intervals[1] = length;

    PathEffect effect = new DashPathEffect(intervals, phase);

    paint.setPathEffect(effect);
  }

  @Override
  protected void onDraw(Canvas canvas) {
    canvas.drawPath(path, paint);
  }

Это выглядит так: индикатор выполнения

Однако путь начинает рисовать от центра слева от фигуры; Интересно, можно ли начать рисовать путь от центральной вершины фигуры, не поворачивая фигуру? Я пытался переместить, который не работает? Любые предложения о том, как сделать начальную точку пути, чтобы быть центральной серединой?

0 ответов

Другие вопросы по тегам