Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PorterDuff:为什么';t PorterDuff.Mode.SRC_是否在剪切源的其余部分?_Android_Porter Duff - Fatal编程技术网

Android PorterDuff:为什么';t PorterDuff.Mode.SRC_是否在剪切源的其余部分?

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);

我试图使用PorterDuff库在我的应用程序的自定义视图中修剪画布圆形和矩形,形成四分之一的正方形,我设法让它工作,但没有完全工作,因为它修剪了方形,但保留了圆形的其余部分,我正在使用SRC_IN模式,从android文档来看,这似乎是正确的使用模式,但它没有按预期工作,这是我的自定义视图类中onDraw方法的一个片段:

@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模式基本上应该得到形状之间的相交部分,但它只是修剪了不相交的正方形部分,但对圆没有同样的效果

这就是它看起来的样子:

我不知道我做错了什么,希望有人能指出