Android - Canvas Paint - только рисовать поверх белого / прозрачного
Мне нужно нарисовать прямоугольник только над областями, которые еще не были нарисованы.
Например, когда я вызываю drawText, чтобы написать что-то, а затем рисую над ним Rect, он должен быть за текстом.
Я не могу просто сначала нарисовать Rect, а затем написать текст в этом случае.
Я читал о XFermode, но я не знаю, как его использовать...
1 ответ
Вы можете настроить свой объект рисования для использования PorterDuffXfermode
с режимом наложения Mode.MULTIPLY
,
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuff.Mode;
private void setupPaint(Paint paint) {
paint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
}
private void clearXfermode(Paint paint) {
paint.setXfermode(null);
}
По моему мнению, для производительности лучше сначала нарисовать прямоугольник, а затем нарисовать текст, но если это невозможно, используйте PorterDuffXfermode
,