我要畫(huà)出一塊由不規(guī)則path組成的區(qū)域,并且這個(gè)path因?yàn)橐曈X(jué)效果需要設(shè)置圓角,我就通過(guò)Paint.setPathEffect(new CornerPathEffect(300)); 給設(shè)置了圓角,但是在通過(guò)這個(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);
}
}
分享題目:android開(kāi)發(fā)PathEffect問(wèn)題處理-創(chuàng)新互聯(lián)
本文來(lái)源:http://www.chinadenli.net/article2/dcjpoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、用戶體驗(yàn)、電子商務(wù)、企業(yè)網(wǎng)站制作、微信公眾號(hào)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容