Составные операции в Холсте Android

Я только запускаю с разработки Android, и я приезжаю из мира JavaScript/HTML, таким образом, я в настоящее время исследую возможности SDK Android.

Операции составного объекта поддержек холста HTML 5 (См. здесь).

Действительно ли это возможно в Холсте Android? Я просканировал API класса Холста, но ничто не мог найти полезным. Мне нужна, по крайней мере, составная операция "источник - в" или (если это не возможно), "источник - на".

7
задан Kara 12 December 2013 в 06:03
поделиться

3 ответа

Композиция обрабатывается рисованием на холсте с помощью Paint, который использует PorterDuffXfermode.

Paint p=new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN));
canvas.drawBitmap(bitmap, 0, 0, p);

Дополнительную информацию см. в здесь. Мне также удалось переопределить onPaint, чтобы мы могли применять эту композицию к элементам, которые рисуют сами себя.

9
ответ дан 6 December 2019 в 23:04
поделиться

Я не рассматривал такие операции раньше, но я думаю, что есть способ сделать их, используя форму Rect. Можно определить прямоугольники, чтобы выделить, какие области должны быть нарисованы на холсте, а какие извлечены из исходного изображения, а класс Rect имеет некоторые встроенные функции сравнения. Например, для имитации исходного кода можно использовать setIntersect(Rect boundingBoxOfSource, Rect boundingBoxOfDestination), чтобы новый прямоугольник был иметь только пересекающуюся область двух изображений. Затем вы можете использовать этот прямоугольник в качестве аргумента в одной из команд рисования Canvas, указывая ему, чтобы он брал только пиксели из исходного изображения, которые находятся внутри этого прямоугольника. Затем вы управляете чертежом по оси Z в том порядке, в котором выполняются команды рисования.

1
ответ дан 6 December 2019 в 23:04
поделиться

Нашел сам. PorterDuffXfermode реализует все эти составные режимы.

1
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: