效果图如上,一个虚线型的进度条,关键代码就是canvas.rotate
public class LineProgressView extends View {
private Paint paint = new Paint();
private int count = 60;//总个数
private int progressCount = 30;//进度条个数
public LineProgressView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setAntiAlias(true);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(20);
paint.setColor(Color.YELLOW);
canvas.save();
for (int i = 0; i < count; i++) {
canvas.drawLine(getWidth() / 2, 100, getWidth() / 2, 110, paint);
canvas.rotate(6, getWidth() / 2, getHeight() / 2);
}
canvas.restore();
paint.setColor(Color.BLUE);
for (int i = 0; i < progressCount; i++) {
canvas.drawLine(getWidth() / 2, 100, getWidth() / 2, 110, paint);
canvas.rotate(6, getWidth() / 2, getHeight() / 2);
}
}
}