반응형
http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
java.lang.Object | ||
↳ | java.lang.Enum<E extends java.lang.Enum<E>> | |
↳ | android.graphics.PorterDuff.Mode |
Enum Values | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
PorterDuff.Mode | ADD | Saturate(S + D) | |||||||||
PorterDuff.Mode | CLEAR | [0, 0] | |||||||||
PorterDuff.Mode | DARKEN | [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] | |||||||||
PorterDuff.Mode | DST | [Da, Dc] | |||||||||
PorterDuff.Mode | DST_ATOP | [Sa, Sa * Dc + Sc * (1 - Da)] | |||||||||
PorterDuff.Mode | DST_IN | [Sa * Da, Sa * Dc] | |||||||||
PorterDuff.Mode | DST_OUT | [Da * (1 - Sa), Dc * (1 - Sa)] | |||||||||
PorterDuff.Mode | DST_OVER | [Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc] | |||||||||
PorterDuff.Mode | LIGHTEN | [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] | |||||||||
PorterDuff.Mode | MULTIPLY | [Sa * Da, Sc * Dc] | |||||||||
PorterDuff.Mode | OVERLAY | ||||||||||
PorterDuff.Mode | SCREEN | [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] | |||||||||
PorterDuff.Mode | SRC | [Sa, Sc] | |||||||||
PorterDuff.Mode | SRC_ATOP | [Da, Sc * Da + (1 - Sa) * Dc] | |||||||||
PorterDuff.Mode | SRC_IN | [Sa * Da, Sc * Da] | |||||||||
PorterDuff.Mode | SRC_OUT | [Sa * (1 - Da), Sc * (1 - Da)] | |||||||||
PorterDuff.Mode | SRC_OVER | [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] | |||||||||
PorterDuff.Mode | XOR | [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc] |
Public Methods
public static final Mode[] values ()
테스트 결과
기본 코드
ComposeShader comp = new ComposeShader(
new BitmapShader(clover, TileMode.REPEAT, TileMode.REPEAT),
new LinearGradient(0,0,320,0, 0x0, Color.BLACK, TileMode.REPEAT),
new PorterDuffXfermode(PorterDuff.Mode.DARKEN)); // 논리연산방법 설정
Pnt.setShader(comp);
canvas.drawRect(0, 9, 600, 50, Pnt);
반응형