Android PorterDuff:为什么';t PorterDuff.Mode.SRC_是否在剪切源的其余部分?
我试图使用PorterDuff库在我的应用程序的自定义视图中修剪画布圆形和矩形,形成四分之一的正方形,我设法让它工作,但没有完全工作,因为它修剪了方形,但保留了圆形的其余部分,我正在使用SRC_IN模式,从android文档来看,这似乎是正确的使用模式,但它没有按预期工作,这是我的自定义视图类中onDraw方法的一个片段:Android PorterDuff:为什么';t PorterDuff.Mode.SRC_是否在剪切源的其余部分?,android,porter-duff,Android,Porter Duff,我试图使用PorterDuff库在我的应用程序的自定义视图中修剪画布圆形和矩形,形成四分之一的正方形,我设法让它工作,但没有完全工作,因为它修剪了方形,但保留了圆形的其余部分,我正在使用SRC_IN模式,从android文档来看,这似乎是正确的使用模式,但它没有按预期工作,这是我的自定义视图类中onDraw方法的一个片段: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int height = getHeight();
int width = getWidth();
canvas.drawCircle(width / 2, height / 2, (width + height) / 10, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
Rect rectangle = new Rect(0, 0, width / 2, height / 2);
paint.setColor(Color.RED);
canvas.drawRect(rectangle, paint);
}
我在屏幕中央画了一个圆,然后在屏幕左上角画了一个正方形,PorterDuff模式基本上应该得到形状之间的相交部分,但它只是修剪了不相交的正方形部分,但对圆没有同样的效果
这就是它看起来的样子:
我不知道我做错了什么,希望有人能指出