Как добавить штрих к прорисовке программно? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть этот код:

Мой рисунок может обернуть еще один рисунок (круговой).

Как программно добавить обводку к внутреннему объекту рисования?

public final class HighlightCircleDrawable extends Drawable implements Drawable.Callback {

  private final Drawable toHighlight;
  private final Paint paint = new Paint();

//...

  public HighlightCircleDrawable(Drawable toHighlight) {
    this.toHighlight = toHighlight;
    toHighlight.setCallback(this);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.GRAY);
  }

  @Override
  public void draw(Canvas canvas) {
    canvas.drawOval(pulseBounds, paint);
    toHighlight.draw(canvas);
  }

1 Ответ

0 голосов
/ 25 апреля 2020

Во-первых, вам нужно сделать фон, вы должны использовать весь холст для этого. Начните с заливки холста, затем примените заливку, но ключ должен использовать меньшие границы для backgroundPaint, чтобы borderPaint окружал highlightPaint

final Paint borderPaint = new Paint();
borderPaint.setStyle(Paint.Style.FILL);
borderPaint.setColor(borderColor);
borderPaint.setAntiAlias(true);
borderPaint.setDither(true);

...

canvas.drawOval(rect, borderPaint);
canvas.drawOval(pulseBounds, paint);
...