參考
PorterDuff.Mode
PorterDuff.Mode 是用來指定兩個圖像共同繪制時的顏色策略的。
它是一個 enum,不同的 Mode 可以指定不同的策略
效果示例
PorterDuff.Mode.DST_OUT
PorterDuff.Mode.DST_IN
Mode詳述
PorterDuff.Mode 一共有 17 個伐庭,可以分為兩類
- Alpha 合成 (Alpha Compositing)
- 混合 (Blending)
Alpha 合成
「PorterDuff」 并不是一個具有實際意義的詞組壳嚎,而是兩個人的名字(準(zhǔn)確講是姓)餐塘。這兩個人當(dāng)年共同發(fā)表了一篇論文轻腺,描述了 12 種將兩個圖像共同繪制的操作(即算法)。而這篇論文所論述的操作叮趴,都是關(guān)于 Alpha 通道(也就是我們通俗理解的「透明度」)的計算的,后來人們就把這類計算稱為Alpha 合成 ( Alpha Compositing ) 权烧。
效果直接盜 Google 的官方文檔了眯亦。
源圖像和目標(biāo)圖像:
Alpha 合成:
Blending 混合
是 Photoshop 等制圖軟件里都有的那些混合模式(multiply darken lighten 之類的)。
這一類操作的是顏色本身而不是 Alpha 通道般码,并不屬于 Alpha 合成妻率,所以和 Porter 與 Duff 這兩個人也沒什么關(guān)系,不過為了使用的方便侈询,它們同樣也被 Google 加進(jìn)了 PorterDuff.Mode 里舌涨。
效果依然盜 官方文檔。
結(jié)論
對于 Alpha 合成類的操作扔字,掌握他們囊嘉,并在實際開發(fā)中靈活運用;而對于混合類的革为,你只要把它們的名字記住就好了扭粱,這樣當(dāng)某一天設(shè)計師告訴你「我要做這種混合效果」的時候,你可以馬上知道自己能不能做震檩,怎么做琢蛤。
另外:PorterDuff.Mode 建議你動手用一下試試蜓堕,對加深理解有幫助。