【问题标题】:Android inverse clipAndroid逆剪辑
【发布时间】:2015-04-14 23:17:29
【问题描述】:

我需要指定一个矩形,Android 画布不能在其中绘制。我知道clipRect 会指定要绘制的区域和区域,但如果我能扭转这种效果,我会想。换句话说,我如何绘制一个对象,使其绘制到矩形的外部。图片澄清:

【问题讨论】:

  • 您可以随时绘制对象,然后在其上方绘制一个白色矩形
  • 我正在尝试减少透支,所以这会完全相反

标签: java android android-canvas clip


【解决方案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 设置的禁区。这会将剪切矩形设置为两者之间的差异。

    【讨论】:

    • 我会做一些比较
    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 2011-07-31
    • 2019-03-08
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多