Android PorterDuffXfermode,PorterDuff.Mode的使用以及Porter-Duff规则
(2012-01-16 15:24:47)下面的Xfermode子类可以改变这种行为:
AvoidXfermode
PixelXorXfermode
PorterDuffXfermode
要应用转换模式,可以使用setXferMode方法,如下所示:
AvoidXfermode avoid = new AvoidXfermode(Color.BLUE, 10, AvoidXfermode.Mode. AVOID);
PorterDuffXfermode 定义的模式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
private
static
final
Xfermode[] sModes = {
new
PorterDuffXfermode(PorterDuff.Mode.CLEAR),
new
PorterDuffXfermode(PorterDuff.Mode.SRC),
new
PorterDuffXfermode(PorterDuff.Mode.DST),
new
PorterDuffXfermode(PorterDuff.Mode.SRC_OVER),
new
PorterDuffXfermode(PorterDuff.Mode.DST_OVER),
new
PorterDuffXfermode(PorterDuff.Mode.SRC_IN),
new
PorterDuffXfermode(PorterDuff.Mode.DST_IN),
new
PorterDuffXfermode(PorterDuff.Mode.SRC_OUT),
new
PorterDuffXfermode(PorterDuff.Mode.DST_OUT),
new
PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP),
new
PorterDuffXfermode(PorterDuff.Mode.DST_ATOP),
new
PorterDuffXfermode(PorterDuff.Mode.XOR),
new
PorterDuffXfermode(PorterDuff.Mode.DARKEN),
new
PorterDuffXfermode(PorterDuff.Mode.LIGHTEN),
new
PorterDuffXfermode(PorterDuff.Mode.MULTIPLY),
new
PorterDuffXfermode(PorterDuff.Mode.SCREEN)
};
|
1.PorterDuff.Mode.CLEAR
2.PorterDuff.Mode.SRC
3.PorterDuff.Mode.DST
4.PorterDuff.Mode.SRC_OVER
5.PorterDuff.Mode.DST_OVER
6.PorterDuff.Mode.SRC_IN
7.PorterDuff.Mode.DST_IN
8.PorterDuff.Mode.SRC_OUT
9.PorterDuff.Mode.DST_OUT
10.PorterDuff.Mode.SRC_ATOP
11.PorterDuff.Mode.DST_ATOP
12.PorterDuff.Mode.XOR
13.PorterDuff.Mode.DARKEN
14.PorterDuff.Mode.LIGHTEN
15.PorterDuff.Mode.MULTIPLY
16.PorterDuff.Mode.SCREEN
滤色效果