Рисование на холсте - PorterDuff.Mode.CLEAR рисует черным! Зачем?

Я пытаюсь создать собственный вид, который работает просто: есть битмап, который раскрывается путем дуги - от 0 до 360 градусов. Степени меняются с некоторыми FPS.

Поэтому я сделал пользовательский вид с переопределеннымonDraw() метод:

@Override
protected void onDraw(Canvas canvas) {

    canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
    arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
    canvas.drawArc(arcRectF, -90, currentAngleSweep, true, arcPaint);
    arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, circleSourceRect, circleDestRect, arcPaint);
}

arcPaint инициализируется следующим образом:

arcPaint = new Paint();
arcPaint.setAntiAlias(true);
arcPaint.setColor(Color.RED); // Color doesn't matter

Теперь все отлично рисует, но ... фон ЧЕРНЫЙ во всем виде.

Если я установлюcanvas.drawColor(..., PorterDuff.Mode.DST) и опуститьcanvas.drawBitmap() - дуга нарисована правильно на прозрачном фоне.

Мой вопрос - как установитьPorterDuff режимы, чтобы он работал с прозрачностью?

Конечноbitmap это 32-битный PNG с альфа-каналом.

Ответы на вопрос(5)

Ваш ответ на вопрос