package Ġcom . tz t . customize . paint . widget . color Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . tz t . customize . paint . R Ċ Ċ /** Ċ Ġ* ĠDescription : ĠPort er D uff X fer mode Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ@ author Ġtang zh ent ao Ċ Ġ* Ġ@ since Ġ 2 0 2 0 / 5 / 6 Ċ Ġ*/ Ċ class ĠPort er D uff X fer mode View : ĠView { ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNONE _ MODE _ SRC Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNONE _ MODE _ DST Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMODE Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĊĠĠĠ Ġprivate Ġvar Ġmodel Ġ= Ġ ĠPort er D uff . Mode . SRC ĊĊĠĠĠ Ġprivate Ġvar Ġnone Mode Ġ= ĠMODE ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġport er D uff Model : ĠPort er D uff . Mode , Ġnone Mode : ĠInt Ġ= ĠMODE ): Ġthis ( context , Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . model Ġ= Ġport er D uff Model ĊĠĠĠĠĠĠĠ Ġthis . none Mode Ġ= Ġnone Mode ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext ): Ġthis ( context , Ġnull ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?): Ġthis ( context , Ġattribute Set , Ġ 0 ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ): Ġsuper ( context , Ġattribute Set , Ġdef Style Attr ) ĊĊĠĠĠ Ġ@ Suppress Lint (" Draw Allocation ") ĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Dst Ġ= ĠBitmap Factory . decode Resource ( resources , ĠR . mip map . dst ) ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Src Ġ= ĠBitmap Factory . decode Resource ( resources , ĠR . mip map . src ) ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġ( width Ġ* Ġ 1 f ) Ġ/ Ġbitmap Dst . width ĊĠĠĠĠĠĠĠ Ġmatrix . set Scale ( scale , Ġscale ) ĊĠĠĠĠĠĠĠ Ġwhen ( none Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNONE _ MODE _ SRC Ġ-> Ġcanvas ?. draw Bitmap ( bitmap Src , Ġmatrix , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNONE _ MODE _ DST Ġ-> Ġcanvas ?. draw Bitmap ( bitmap Dst , Ġmatrix , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE Ġ-> Ġ{ val Ġsaved Ġ= Ġcanvas ?. save Layer ( null , Ġnull , ĠCanvas . ALL _ SAVE _ FLAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas ?. draw Bitmap ( bitmap Dst , Ġmatrix , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . xfer mode Ġ= ĠPort er D uff X fer mode ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas ?. draw Bitmap ( bitmap Src , Ġmatrix , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . xfer mode Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas ?. restore To Count ( saved ?: Ġ 0 )} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }