如何在一个可绘制的程序中添加一个笔画?

问题描述 投票:0回答:1

我有这样的代码。

我的可画线包裹着另一个可画线(圆形)。

我如何以编程方式为内部的可绘制对象添加笔触?

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);
  }
android android-canvas android-drawable stroke
1个回答
0
投票

首先,你需要做背景,你应该使用整个画布来做。从填充画布开始,然后应用你的填充,但关键是对背景Paint使用较小的bounds,使borderPaint包围高光Paint。

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);
© www.soinside.com 2019 - 2024. All rights reserved.