Android : Canvas Path using offset make to much copies

on Saturday, November 1, 2014


seems I have a problem to understand how offset works. When I use the code below it create me 5 arrowheads, but why? I create one and the use twice offset. So i thought i get 3 arrow heads.



public class legende extends View {

private Paint paint;
private Path arrowPath;

public legende(Context context) {
super(context);
init();
}

public void init(){
paint = new Paint();
arrowPath = new Path();
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = 1500;
int height = 5000;
setMeasuredDimension(width, height);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);


arrowPath.moveTo(420, 300);
arrowPath.lineTo(430, 300);
arrowPath.lineTo(420, 310);
arrowPath.lineTo(410, 300);
arrowPath.close();
canvas.drawPath(arrowPath, paint);


arrowPath.offset(0,200);
canvas.drawPath(arrowPath, paint);

arrowPath.offset(0,380);
canvas.drawPath(arrowPath, paint);
}
}

0 comments:

Post a Comment