Я пытаюсь использовать библиотеку 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 должен в основном получить пересеченную часть между фигурами, ноон просто обрезает непересекающуюся квадратную часть, но не делает то же самое для круга.
Вот как это выглядит: ![Screenshot of my app](https://i.stack.imgur.com/8mJid.jpg)
Я не могу сказать, что я 'Я делаю что-то не так, надеюсь, кто-то может указать на это.