Android逆剪辑
Posted
技术标签:
【中文标题】Android逆剪辑【英文标题】:Android inverse clip 【发布时间】:2015-04-14 23:17:29 【问题描述】:我需要指定一个矩形,android 画布不能在其中绘制。我知道clipRect
会指定要绘制的区域和区域,但如果我能扭转这种效果,我会想。换句话说,我如何绘制一个对象,使其绘制到矩形的外部。图片澄清:
【问题讨论】:
您可以随时绘制对象,然后在其上方绘制一个白色矩形 我正在尝试减少透支,所以这会完全相反 【参考方案1】:对于 Android O,Canvas
公开 API clipOutPath(Path path)
;对于早期版本,您可以使用@Gabe Sechan 提到的clipPath(Path path, Region.Op op)
。
实现看起来像:
@Override
protected void dispatchDraw(Canvas canvas)
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
canvas.clipOutPath(path);
else
canvas.clipPath(path, Region.Op.DIFFERENCE);
super.dispatchDraw(canvas);
【讨论】:
【参考方案2】:我不确定这是否真的会比透支更高效。但是您可以将剪辑路径设置为完整视图,然后将第二个路径设置为带有 Region.Op DIFFERENCE 设置的禁区。这会将剪切矩形设置为两者之间的差异。
【讨论】:
我会做一些比较以上是关于Android逆剪辑的主要内容,如果未能解决你的问题,请参考以下文章