2

我正在尝试使用 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);
  }

这看起来像这样: 进度条

然而,路径从形状的中心左侧开始绘制;想知道是否可以在不旋转形状的情况下从形状的中心顶部开始绘制路径。我试过 moveTo 似乎不起作用?关于如何使路径的起点成为中心中间的任何建议?

4

0 回答 0