Android canvas clipPath:使剪裁区域透明

时间:2015-08-21 10:12:31

标签: android android-canvas

我在Android中创建了一个自定义视图,需要使用canvas.clipPath实现的弯曲边缘。这适用于剪切区域显示灰色背景颜色而不是透明的例外。

enter image description here

在此图像中,右手黑色是内容,应通过剪裁区域显示。绿色是视图,视图右侧的灰色是应该是透明的区域,例如,在这个例子中,灰色应该是黑色。

这是我的(Xamarin)代码:

public override void Draw(Canvas canvas)
{
    var path = new Path();
    path.AddRect(0,0,this.Width-100,this.Height, Path.Direction.Cw);
    path.AddArc(new RectF(this.Width-200, -100, this.Width, this.Height+100), 270, 180);
    canvas.ClipPath(path);
    base.Draw(canvas);
}

是否可以使画布的剪裁区域透明?

(顺便说一句,我知道我不应该在Draw中实例化对象,这只是为了简洁起见)

1 个答案:

答案 0 :(得分:0)

我正在咆哮错误的树,所以如果没有其他信息,任何人都很难回答!

最左边的灰色实际上是正确的背景颜色。最右边的灰色是真灰色的暗灰色版本,因为曲面板实际上是一个隐藏在抽屉布局中的菜单,因此默认的Android调光正在发挥作用。