카테고리 없음 / / 2013. 8. 13. 16:23

PorterDuffXfermode PorterDuff.Mode 별로 테스트

반응형
http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
public static final enum

PorterDuff.Mode

extends Enum<E extends Enum<E>>
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 PorterDuff.Mode valueOf (String name)

Added in API level 1

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);


반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유