Вот отличная статья с иллюстрациями инженера Google:
http://ssp.impulsetrain.com/porterduff.html
PorterDuff описывается как способ объединения изображений, как если бы они были «кусочками картона неправильной формы» с наложениемдруг на друга, а также схема наложения перекрывающихся частей.
По умолчанию для Android способ составления изображений PorterDuff.Mode.SRC_OVER , что соответствует отрисовке исходного изображения / цвета более целевого изображения.Другими словами, он делает то, что вы ожидаете, и рисует исходное изображение (изображение, которое вы рисуете) поверх конечного изображения (холста), причем конечное изображение показывается до степени, определенной альфа-каналом исходного изображения.
Вы можете использовать приведенную ниже клавишу для понимания алгебры, которую документы Android используют для описания других режимов (см. статью для более полного описания с аналогичными терминами).
- Sa Источник альфа
- Sc Источник цвета
- Da Альфа-адресат
- Dc Цвет назначения
Где альфа - это значение [0..1]
, а цвет заменяется один раз на канал (поэтому используйтеформула один раз для каждого из красного, зеленого и синего)
Результирующие значения указываются в виде пары в квадратных скобках следующим образом.
[<alpha-value>,<color-value>]
Где alpha-value
и color-value
формулы для получения результирующего альфа-канала и уважения каждого цветового каналаively.