我正在尝试使用DashPathEffect和带有圆形rect的路径绘制进度路径。每次我获得进度更新时,我都会使用阶段更新路径。
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);
}
这看起来像这样: Progress bar
然而,路径开始从形状的左侧中心绘制;想知道是否可以从形状的中心顶部开始绘制路径而不旋转形状。我试过moveTo似乎不起作用?关于如何使路径的起点成为中间位置的任何建议?