android開(kāi)發(fā)PathEffect問(wèn)題處理
我要畫(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);
}
}
相關(guān)文章
Android中的SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介
SQLite是Android系統(tǒng)采用的一種開(kāi)源的輕量級(jí)的關(guān)系型的數(shù)據(jù)庫(kù)。這篇文章主要介紹了Android中的SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介,需要的朋友可以參考下2017-03-03
Activity透明/半透明效果的設(shè)置transparent(兩種實(shí)現(xiàn)方法)
兩種方法實(shí)現(xiàn)Activity透明/半透明效果的設(shè)置,代碼思路很有調(diào)理,感興趣的朋友可以參考下,希望本文可以幫助到你2013-02-02
Android實(shí)現(xiàn)簡(jiǎn)單MD5加密的方法
這篇文章主要介紹了Android實(shí)現(xiàn)簡(jiǎn)單MD5加密的方法,涉及Android編碼操作及加密的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08
Android 使用Shell腳本截屏并自動(dòng)傳到電腦上
這篇文章主要介紹了Android 使用Shell腳本截屏并自動(dòng)傳到電腦上的相關(guān)資料,需要的朋友可以參考下2016-02-02

