У меня есть стек растровых изображений, которые мне нужно отображать один над другим. Я достигаю этого с относительной компоновкой и несколькими ImageViews друг над другом, у всех которых есть битмап, назначенный ему.Полупрозрачный растровый оверлей отображает неправильный цвет
Это прекрасно работает, но когда верхние слои полупрозрачны, цвета нижнего растрового изображения отключены.
Все мои растровые изображения используют Config.ARGB_8888
.
Скажем, что верхний слой красного цвета с альфой 50%, а нижний слой зеленый с альфой 100%.
Я могу либо установить цвет растрового изображения на красный, то альфа-изображение ImageView на 0.5f, и он будет отображать зеленый цвет ниже штрафа (темно-зеленый с красным, смешанным).
Если я установил растровые пиксели на 50% красный, как это: bmp.eraseColor(0x7Fff0000);
и оставьте изображениеView alpha на 100%, зеленый ниже будет отображаться как желтый, смешивая красный и зеленый, а не накладывая его.
К сожалению, я не могу использовать (рабочую) кулачную версию, потому что альфа на растровом изображении выше не будет однородной.
Есть ли режим режима наложения для использования истинных цветов при использовании полупрозрачных пикселей в растровом изображении?
EDIT: Я также попытался установить несколько изображений PorterDuffXfermodes в ImageViews, но ни один из них не дает правильный результат.
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); //OVERLAY//ADD//SCREEN//DARKEN//LIGHTEN
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, paint);