当前位置:   article > 正文

Android 笔记 - 从图像中扣一个洞出来 ……_安卓图片中间挖空圆形

安卓图片中间挖空圆形

如题

我发现,用canvas绘图如果只是创造一些图形倒还容易,无非就是麻烦一点。
但是我居然一下想不到怎么从图像中扣出一个透明的圆形来。

方形的很容易嘛,可以在四周绘制几个方形,把中间空出来就可以了,已经实现了。但是没办法让中间空出一个圆形的来。

比如说,类似扫码的界面,就中间一个扫码区域可用,其他区域是半透明的,或者是一个蒙版,把需要特写的地方空出来,其他地方是半透明的。

找到了两个解决办法

第一个方法:使用paint,setStrokeWidth.
在绘图的时候,需要设置paint,如果绘制一个圆形,把paint设置成stroke,就会绘制一个带边线的圆形,但是效果不是上面提到的那样的中空的。

但是,如果把strokeWidth设置的很宽,就可以模拟出这种效果。具体的试一下就知道了。

其中,设置的宽度是在原边线的位置,往外和往内各绘制0.5个宽度,加起来就是1个宽度了。

缺点:空出来的空间大了还好,看不出来毛病(几乎看不出来)。如果中间的圆小了,就看得出来那实际上是个多边形,貌似是个6变形。

第二个方法,绘图的时候,paint有个方法 :setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
如果设置了这个,那么,绘出来的图形会

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/889733
推荐阅读
相关标签
  

闽ICP备14008679号