在画布上绘图时屏蔽圆/形状

时间:2018-04-30 13:36:53

标签: android canvas kotlin android-canvas

我在onDraw(canvas)函数中,因此可以访问画布

我能够在画布上绘制颜色,但我试图掩盖(删除/剪切)圆圈(或任何形状),以便圆圈可以透过画布看到下面的图层:

x_1 = tf.placeholder(tf.float32, shape=[8,2])
y_1 = tf.placeholder(tf.float32, shape=[8])

w_1 = tf.placeholder(tf.float32, shape=[2,8])
b_1 = tf.placeholder(tf.float32, shape=[8,])

sess = tf.Session()

sess.run(tf.global_variables_initializer())

y_ = tf.matmul(x_1,w_1) + b

sigmoid = tf.nn.sigmoid(y_)

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(sigmoid)

for _ in range(50000):

我已经使用了所有可用的Mode.XXXX并尝试了WHITE,BLACK和TRANSPARENT

有什么想法吗?      (已添加)需要支持API 19,谢谢

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用Canvas#clipOutPath(Path)方法。

像这样:

canvas.clipOutPath(Path().also {
  it.addCircle(30, 30, 20, Path.Direction.CW)
})

对于低于26的API级别,请使用:

canvas.clipPath(Path().also {
  it.addCircle(30, 30, 20, Path.Direction.CW)
}, Region.Op.DIFFERENCE)