欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android開發(fā)PathEffect問題處理

 更新時(shí)間:2017年11月17日 10:12:07   投稿:laozhang  
本文主要整理了關(guān)于android中PathEffect的問題匯總以及處理方式,以及給大家做了關(guān)于PathEffect類的詳細(xì)解釋。

我要畫出一塊由不規(guī)則path組成的區(qū)域,并且這個(gè)path因?yàn)橐曈X效果需要設(shè)置圓角,我就通過Paint.setPathEffect(new CornerPathEffect(300)); 給設(shè)置了圓角,但是在通過這個(gè)path組合成區(qū)域的時(shí)候因?yàn)檫@個(gè)圓角的設(shè)置整個(gè)區(qū)域都有圓角的效果了,這不是我想要的。

如圖,黑色是我的path,紅色是我設(shè)置了圓角的由path組成的區(qū)域。四個(gè)角落都有了圓角的效果,這不是我想要的。

而藍(lán)色區(qū)域是未設(shè)置圓角的,此時(shí)path一側(cè)的區(qū)域就不符合標(biāo)準(zhǔn)了。

以下是我的全部代碼

public class PathEffectView extends View {

  private Path line;
  private Paint linePaint;


  private Path range;
  private Paint rangePaint;
  private final Paint paint3;

  public PathEffectView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);

    linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);

    linePaint.setStrokeWidth(10);
    linePaint.setColor(Color.BLACK);
    linePaint.setStyle(Paint.Style.STROKE);
    linePaint.setPathEffect(new CornerPathEffect(300));

    rangePaint = new Paint(linePaint);

    rangePaint.setColor(Color.BLUE);
    rangePaint.setStyle(Paint.Style.FILL);


    paint3 = new Paint(linePaint);
    paint3.setColor(Color.RED);

  }

  @Override
  protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);

    line = new Path();
    range = new Path();

    line.moveTo(0,1000);
    line.rLineTo(200,-150);
    line.rLineTo(200,300);
    line.rLineTo(200,-350);
    line.rLineTo(200,320);
    line.rLineTo(200,-370);
    line.lineTo(w,800);


    range.addPath(line);
    range.lineTo(w,h);
    rangePaint.setPathEffect(null);
    range.lineTo(0,h);
    range.close();
  }

  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.save();
    canvas.translate(0,-20);
    canvas.drawPath(line, linePaint);
    canvas.restore();


    canvas.drawPath(range, rangePaint);
    canvas.drawPath(range,paint3);
  }
}

相關(guān)文章

最新評論