Сделайте изображение маски PorterDuff невидимым - PullRequest
0 голосов
/ 25 мая 2019

У меня есть треугольник на прозрачном растровом изображении, которое я хочу частично показать - я хочу нарисовать дугу и показать пересекающуюся часть.Проблема в том, что маска ковчега больше, чем треугольник, и она показывается позади него.

Bitmap bitmap = Bitmap.createBitmap((int) bounds.width(),
                    (int) bounds.height(),
                    Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bitmap);

Paint paint = new Paint();
tempCanvas.drawArc(0,0,boxWidth,
                    boxHeight,startAngle,sweepAngle,true, paint);

PorterDuff.Mode mode = PorterDuff.Mode.SRC_IN;
paint.setXfermode(new PorterDuffXfermode(mode));
tempCanvas.drawBitmap(triangelBitmap,0,0,paint);
canvas.drawBitmap(bitmap,bounds.left,bounds.top, null);

Она работает нормально, за исключением того, что я вижу черные части ковчега, где она выходит за пределы растрового изображения треугольника.Я пробовал `Color.TRANSPARENT ', но похоже, что он невидим для PortedDuff таким образом (нет частей треугольника вообще).Есть ли способ сделать маску невидимой, не влияя на смешивание?

...