Как правильно использовать Xfermode?
Мне тяжело иметь дело с Xfermode.
Вот код, который я написал
val bitmap = Bitmap.createBitmap(container.width, container.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val paint = Paint()
paint.isAntiAlias = true
paint.isFilterBitmap = true
paint.isDither = true
val shape = ShapeDrawable(PathShape(PathParser.createPathFromPathData(pathData), container.width.toFloat(), container.height.toFloat()))
shape.setBounds(0, 0, container.width, container.height)
shape.intrinsicHeight = container.height
shape.intrinsicWidth = container.width
shape.paint.color = Color.GREEN
shape.paint.style = Paint.Style.FILL
paint.color = Color.RED
canvas.drawARGB(255, 255, 0,0)
shape.paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
shape.draw(canvas)
val y = BitmapDrawable(resources, bitmap)
container.backgroundDrawable = y
Основная линия здесь
shape.paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
Это вывод, когда эта строка присутствует против когда я закомментирую эту строку
Таким образом, второе изображение является правильным. На первом изображении я ожидал, что зеленая фигура будет действовать как маска, и я получу эту фигуру с красным цветом, но, как мы видим, это не так. Я понятия не имею, почему это не работает. Любая помощь будет высоко оценена!