
我要画出一块由不规则path组成的区域,并且这个path因为视觉效果需要设置圆角,我就通过Paint.setPathEffect(new CornerPathEffect(300)); 给设置了圆角,但是在通过这个path组合成区域的时候因为这个圆角的设置整个区域都有圆角的效果了,这不是我想要的。
如图,黑色是我的path,红色是我设置了圆角的由path组成的区域。四个角落都有了圆角的效果,这不是我想要的。
而蓝色区域是未设置圆角的,此时path一侧的区域就不符合标准了。
以下是我的全部代码
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开发PathEffect问题处理全部内容,希望文章能够帮你解决android开发PathEffect问题处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)