Почему drawPath не работает? - PullRequest
       12

Почему drawPath не работает?

1 голос
/ 11 августа 2011

У меня есть этот код для drawpath, и ничего не отображается, и я не могу понять, почему.

//i move the path's starting point somewhere up here to a point.
//get center x and y are the centers of a picture. it works when i
//do drawline and store the different starting points 
//but i want it to look continuous not like a lot of different
//lines

path.lineTo(a.getCenterX(), a.getCenterY());
path.moveTo(a.getCenterX(), a.getCenterY());


p.setStrokeWidth(50);
p.setColor(Color.BLACK);
canvas.drawPath(path,p);

drawpath image

заранее спасибо

Ответы [ 3 ]

10 голосов
/ 09 ноября 2014

Только новый экземпляр Paint заполняет пути.

Для хода контуров, установите стиль рисования:

paint.setStyle(Paint.Style.STROKE);

Если фон, на котором вы рисуете, черный, измените цвет, чтобы вы могли видеть краску:

paint.setColor(Color.RED);   // something other than the background color

Дополнительно:

paint.setStrokeWidth(10);  // makes the line thicker
5 голосов
/ 16 августа 2011

Я должен был добавить это, чтобы нарисовать, чтобы заставить это работать. не знаю почему.

mPaint.setDither(true);
mPaint.setColor(0xFFFFFF00);
mPaint.setStyle(Paint.Style.STROKE);    
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(3);
0 голосов
/ 11 августа 2011

Я думаю, что лучший способ решить вашу проблему - это изменить код следующим образом:

private final int strokeWidth = 50;

path.lineTo(a.getCenterX() + strokewidth / 2, a.getCenterY() + strokeWidth / 2);
path.moveTo(a.getCenterX(), a.getCenterY());

p.setStrokeWidth(strokeWidth);
p.setColor(Color.BLACK);
canvas.drawPath(path,p);

Возможно, вам придется поиграть с этим, но это должно в основном перекрывать линии, чтобы они выглядели непрерывными.

Скорее всего, вам придется добавить оператор switch для направления, в котором вы рисуете, но это должно быть довольно тривиально.

Надеюсь, это поможет!

...