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逆剪辑的主要内容,如果未能解决你的问题,请参考以下文章

Android 剪辑到背景

Android 视图剪辑

如何在android中剪辑圆圈

Android实现一个progressBar,上面有两个剪辑textview

Android:将图像剪辑到形状

如何在 android 中剪辑星星?但是明星的样子很清晰