效果图:
上图中小圆点是自定义的一个Bitmap,需要其他样式替换图片即可。
/**
* 绘制自定义path
*
* @param canvas
* @param bitmap 附在path上面的图形
* @param gap 图形之间的间隔距离
* @param pathList
* @param pathPaint
*/
public static void drawPaths(Canvas canvas, Bitmap bitmap, float gap, List<Path> pathList, Paint pathPaint) {
if (Util.isNotEmpty(pathList)) {
int bw_half = bitmap.getWidth() / 2;
int bh_half = bitmap.getHeight() / 2;
for (Path path : pathList) {
PathMeasure pathMeasure = new PathMeasure(path, false);
canvas.drawPath(path, pathPaint);
float temp = 0;
float length = pathMeasure.getLength();
float[] mPos = new float[2];//x,y坐标
float[] mTan = new float[2];
while (temp < length) {
pathMeasure.getPosTan(temp, mPos, mTan);
canvas.drawBitmap(bitmap, mPos[0] - bw_half , mPos[1] - bh_half , pathPaint);
temp += gap;
}
}
}
}