package Ġbox res in . android . camera Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Camera Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Surface Ċ import Ġandroid . view . Surface Holder Ċ import Ġandroid . view . Surface View Ċ import Ġandroid . view . WindowManager ĊĊ Ċ /** Ċ Ġ* Ġ# Ġì¹ ´ë © Ķ ëĿ¼ Ġë · ° Ċ Ġ* Ċ Ġ* Ġ@ author ĠM ins uk ĠE om Ċ Ġ* Ġ@ since Ġv 0 . 1 . 0 Ċ Ġ*/ Ċ class ĠCamera View ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) Ġ: ĠSurface View ( context , Ġattrs ) Ċ { ĊĠĠĠ Ġprivate Ġvar Ġcamera : ĠCamera ? Ġ= Ġnull ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġì¹ ´ë © Ķ ëĿ¼ ë¥¼ ĠìĹ ´ ê³ł , Ġì¹ ´ë © Ķ ëĿ¼ Ġë · ° ìĹĲ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ´ ëĭ¤ . ĊĠĠĠĠ Ġ* Ġ> ĠâĢ » Ġ[ CAMERA ][ Manifest . permission . CAMERA ] Ġê ¶ Į íķľ ìĿ´ ĠíķĦìļĶ íķĺëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Camera () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠìĿ´ë¯¸ Ġì¹ ´ë © Ķ ëĿ¼ ê°Ģ ĠìĹ ´ë ł ¤ ìŀ Ī ëĬĶ Ġìĥģ íĻ © ìĿĦ ĠëĮĢ ë¹Ħ íķ´ Ġì¹ ´ë © Ķ ëĿ¼ ë¥¼ Ġëĭ « ê³ł Ġëĭ¤ ìĭľ ĠìĹ° ëĭ¤ . ĊĠĠĠĠĠĠĠ Ġrelease Camera () ĊĠĠĠĠĠĠĠ Ġcamera Ġ= ĠCamera . open () ĊĊĠĠĠĠĠĠĠ Ġ// ĠìĬ¤ ë§Ī íĬ¸ íı ° ìĿĺ ĠíĻ Ķ ë©´ Ġë°© íĸ¥ ìĹĲ ĠëĶ°ëĿ¼ Ġì¹ ´ë © Ķ ëĿ¼ Ġê°ģ ëıĦ ë¥¼ Ġì¡° ìł Ī íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġval Ġwindow Manager Ġ= Ġcontext . getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ? ĠWindow Manager ĊĠĠĠĠĠĠĠ Ġwhen Ġ( window Manager ?. default Display ?. rotation ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ ëĬĶ Ġê¸°ë³¸ ìłģìľ¼ë¡ľ Ġìĺ Ĩ ìľ¼ë¡ľ Ġë Ī Ħ ìĽĮ ìŀ Ī ê¸° ĠëķĮë¬¸ìĹĲ ĠìĦ¸ ë¡ľ Ġëª¨ ëĵľ ìĿ¼ ĠëķĮ Ġë°© íĸ¥ ìĿĦ Ġ 9 0 Ë ļ ë¡ľ ĠìĦ¤ìłķ íķľëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface . ROT ATION _ 0 Ġ-> Ġcamera ?. set Display Orientation ( 9 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface . ROT ATION _ 9 0 Ġ-> Ġcamera ?. set Display Orientation ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface . ROT ATION _ 1 8 0 Ġ-> Ġcamera ?. set Display Orientation ( 2 7 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface . ROT ATION _ 2 7 0 Ġ-> Ġcamera ?. set Display Orientation ( 1 8 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġìĭľìŀĳ íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġcamera ?. set Preview Display ( holder ) ĊĠĠĠĠĠĠĠ Ġcamera ?. start Preview () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġì¹ ´ë © Ķ ëĿ¼ ë¥¼ Ġíķ´ ìłľ íķľëĭ¤ . Ġì¹ ´ë © Ķ ëĿ¼ Ġë · ° ìĹĲ ĠëĤĺ íĥĢ ëĤĺ ëį ĺ Ġë ¯¸ ë¦¬ ë³´ ê¸° ê°Ģ ĠìĤ¬ ëĿ¼ ì§Ħ ëĭ¤ . ĊĠĠĠĠ Ġ* Ġ> ĠâĢ » Ġì¹ ´ë © Ķ ëĿ¼ ê°Ģ ĠìĹ ´ë ł ¤ ìŀ Ī ì§Ģ ĠìķĬ ìĿĢ Ġìĥģíĥľ ìĹĲìĦľ ĠìĿ´ Ġíķ¨ìĪĺ ë¥¼ Ġíĺ¸ì¶ľ íķĺë©´ ĠìķĦ ë¬´ ĠìĿ¼ ëıĦ ĠìĿ¼ ìĸ´ë Ĥĺ ì§Ģ ĠìķĬ ëĬĶ ëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrelease Camera () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġìłķ ì§Ģ íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġcamera ?. stop Preview () ĊĠĠĠĠĠĠĠ Ġcamera ?. set Preview Display ( null ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ ë¥¼ Ġíķ´ ìłľ íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġcamera ?. release () ĊĠĠĠĠĠĠĠ Ġcamera Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinit ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ ¸ Ġíĳľ ë©´ ĠíĻ Ģ ëįĶ ìĹĲ Ġì ½ ľ ë° ± ĠìĦ¤ìłķ ĊĠĠĠĠĠĠĠ Ġholder . add Callback ( object : ĠSurface Holder . Callback ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ ¸ Ġíĳľ ë©´ ìĿ´ ĠìĥĿìĦ± ëĲĺ ìĹĪ ìĿĦ ĠëķĮ Ġíĺ¸ì¶ľ ëĲľ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Created ( holder : ĠSurface Holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ ¸ Ġíĳľ ë©´ ĠíĻ Ģ ëįĶ ë¥¼ ĠìĦ¤ìłķ íķľëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera ?. set Preview Display ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ ¸ Ġíĳľ ë©´ ìĿ´ Ġìłľ ê±° ëĲĺ ìĹĪ ìĿĦ ĠëķĮ Ġíĺ¸ì¶ľ ëĲľ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Destroyed ( holder : ĠSurface Holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġì¹ ´ë © Ķ ëĿ¼ Ġë ¯¸ ë¦¬ ë³´ ê¸° ë¥¼ Ġë Ŀ Ħ ìļ ¸ Ġíĳľ ë©´ ĠíĻ Ģ ëįĶ ë¥¼ Ġìłľ ê±° íķľëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera ?. set Preview Display ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Changed ( holder : ĠSurface Holder , Ġformat : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ