package Ġme . sh ou h eng . ic amera . preview . impl Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Surface Texture Ċ import Ġandroid . view .* Ċ import Ġandroid . view . Texture View . Surface Texture Listener Ċ import Ġme . sh ou h eng . ic amera . enums . Preview ViewType Ċ Ċ /** Ċ Ġ* ĠCamera Ġpreview Ġimplementation Ġbased Ġon Ġ[ Texture View ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠW ng Sh h ng Ġ( sh ou h eng 2 0 1 5 @ gmail . com ) Ċ Ġ* Ġ@ version Ġ 2 0 1 9 / 4 / 1 3 Ġ 2 2 : 5 4 Ċ Ġ*/ Ċ class ĠTexture Preview ( context : ĠContext , Ġparent : ĠViewGroup ) Ġ: ĠBase Camera Preview () Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġsurface Texture : ĠSurface Texture ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġprivate Ġval Ġtexture View : ĠTexture View Ġ= ĠTexture View ( context ) ĊĊĠĠĠ Ġoverride Ġval Ġsurface : ĠSurface ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠSurface ( surface Texture ) ĊĊĠĠĠ Ġ@ get : Preview ViewType ĊĠĠĠ Ġoverride Ġval Ġpreview Type : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPreview ViewType . TEXTURE _ VIEW ĊĊĠĠĠ Ġoverride Ġvar Ġsurface Holder : ĠSurface Holder ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġval Ġview : ĠView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtexture View ĊĊĠĠĠ Ġ/* -------------------------------- --------- inner Ġmethods -------------------------------- ------------- */ ĊĠĠĠ Ġprivate Ġfun Ġupdate Surface Texture ( surface Texture : ĠSurface Texture , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . surface Texture Ġ= Ġsurface Texture ĊĠĠĠĠĠĠĠ Ġset Size ( width , Ġheight ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtexture View . layout Params Ġ= ĠViewGroup . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġparent . addView ( texture View ) ĊĠĠĠĠĠĠĠ Ġtexture View . surface Texture Listener Ġ= Ġobject Ġ: ĠSurface Texture Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġa Ġ[ Texture View ]' s ĠSurface Texture Ġis Ġready Ġfor Ġuse . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġsurface ĠThe Ġsurface Ġreturned Ġby ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ android . view . Texture View . get Surface Texture ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġwidth ĠĠ ĠThe Ġwidth Ġof Ġthe Ġsurface ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġheight Ġ ĠThe Ġheight Ġof Ġthe Ġsurface ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Surface Texture Available ( surface : ĠSurface Texture , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Surface Texture ( surface , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Preview Available () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġthe Ġ[ Surface Texture ]' s Ġbuffers Ġsize Ġchanged . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġsurface ĠThe Ġsurface Ġreturned Ġby ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ[ android . view . Texture View . get Surface Texture ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġwidth ĠĠ ĠThe Ġnew Ġwidth Ġof Ġthe Ġsurface ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġheight Ġ ĠThe Ġnew Ġheight Ġof Ġthe Ġsurface ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Surface Texture Size Changed ( surface : ĠSurface Texture , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Surface Texture ( surface , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Preview Available () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġthe Ġspecified Ġ[ Surface Texture ] Ġis Ġabout Ġto Ġbe Ġdestroyed . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠIf Ġreturns Ġtrue , Ġno Ġrendering Ġshould Ġhappen Ġinside Ġthe Ġsurface Ġtexture Ġafter Ġthis Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġis Ġinvoked . ĠIf Ġreturns Ġfalse , Ġthe Ġclient Ġneeds Ġto Ġcall Ġ[ Surface Texture . release ]. ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠMost Ġapplications Ġshould Ġreturn Ġtrue . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġsurface ĠThe Ġsurface Ġabout Ġto Ġbe Ġdestroyed ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Surface Texture Destroyed ( surface : ĠSurface Texture ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Surface Texture ( surface , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Surface Texture Updated ( surface : ĠSurface Texture ) Ġ{/* Ġnoop Ġ*/ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }