我需要创建一个具有圆形扇区形状的剪贴蒙版.
我可以使用以下内容绘制一个:
paint.setColor(0x88FF0000); paint.setStyle(Style.FILL); canvas.drawArc(oval,30,true,paint);
我想用它作为剪切路径,所以我尝试过:
Path path = new Path(); path.addArc(oval,30); canvas.clipPath(path,Op.REPLACE);
但是addArc没有useCenter参数,所以我得到的不是扇区而是段.
解决方法
好吧,使用剪贴蒙版似乎没有正确的方法.
但是,使用PorterDuffXfermode还有另一种方法.参见ApiDemos中的Xfermodes.
我只是使用drawArc在DST_OUT运算符上绘制一个扇区.这使得扇区覆盖的图像部分不可见(未绘制).
paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(0xFFFFFFFF); paint.setStyle(Style.FILL); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); canvas.drawColor(Color.TRANSPARENT,PorterDuff.Mode.CLEAR); drawable.draw(canvas); canvas.drawArc(oval,90,paint);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。