package Ġcom . y bj 3 6 6 5 3 3 . yy camera . ui ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . os . Handler Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . y bj 3 6 6 5 3 3 . yy camera . R ĊĊ Ċ /** Ċ Ġ* Ġ@ ClassName : ĠFocus ImageView Ċ Ġ* Ġ@ Description : èģļ çĦ ¦ æĹ¶ æĺ¾ç¤º çļĦ Imag View Ċ Ġ* Ġ@ author ĠLin J Ċ Ġ* Ġ@ date Ġ 2 0 1 5 - 1 - 4 Ġä¸ĭåįĪ 2 : 5 5 : 3 4 Ċ Ġ*/ Ċ class ĠFocus ImageView Ġ: ĠImageView Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Focus Img Ġ= ĠNO _ ID ĊĠĠĠ Ġprivate Ġvar Ġm Focus Suc ceed Img Ġ= ĠNO _ ID ĊĠĠĠ Ġprivate Ġvar Ġm Focus Failed Img Ġ= ĠNO _ ID ĊĠĠĠ Ġprivate Ġvar Ġm Animation : ĠAnimation ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Handler : ĠHandler ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Animation Ġ= ĠAnimation Utils . load Animation ( getContext (), ĠR . anim . focus view _ show ) ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġm Handler Ġ= ĠHandler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Animation Ġ= ĠAnimation Utils . load Animation ( getContext (), ĠR . anim . focus view _ show ) ĊĠĠĠĠĠĠĠ Ġm Handler Ġ= ĠHandler () ĊĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Focus ImageView ) ĊĠĠĠĠĠĠĠ Ġm Focus Img Ġ= Ġa . getResource Id ( R . style able . Focus ImageView _ focus _ f oc using _ id , ĠNO _ ID ) ĊĠĠĠĠĠĠĠ Ġm Focus Suc ceed Img Ġ= Ġa . getResource Id ( R . style able . Focus ImageView _ focus _ success _ id , ĠNO _ ID ) ĊĠĠĠĠĠĠĠ Ġm Focus Failed Img Ġ= Ġa . getResource Id ( R . style able . Focus ImageView _ focus _ fail _ id , ĠNO _ ID ) ĊĠĠĠĠĠĠĠ Ġa . recycle () ĊĊĠĠĠĠĠĠĠ Ġ// èģļ çĦ ¦ åĽ¾çīĩ ä¸įèĥ½ä¸ºç©º ĊĠĠĠĠĠĠĠ Ġif Ġ( m Focus Img Ġ== ĠNO _ ID Ġ|| Ġm Focus Suc ceed Img Ġ== ĠNO _ ID Ġ|| Ġm Focus Failed Img Ġ== ĠNO _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" m Focus Img , m Focus Suc ceed Img , m Focus Failed Img Ġis Ġnull ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º èģļ çĦ ¦ åĽ¾ æ¡Ī ĊĠĠĠĠ Ġ* Ġ@ param Ġ Ġpoint ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstart Focus ( point : ĠPoint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Focus Img Ġ== ĠNO _ ID Ġ|| Ġm Focus Suc ceed Img Ġ== ĠNO _ ID Ġ|| Ġm Focus Failed Img Ġ== ĠNO _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" focus Ġimage Ġis Ġnull ") ĊĠĠĠĠĠĠĠ Ġ// æł¹æį® è§¦ æĳ ¸ çļĦ åĿĲæłĩ è®¾ç½® èģļ çĦ ¦ åĽ¾ æ¡Ī çļĦ ä½įç½® ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġlayout Params Ġas ĠFrame Layout . LayoutParams ĊĠĠĠĠĠĠĠ Ġparams . top Margin Ġ= Ġpoint . y Ġ- Ġmeasured Height Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġparams . left Margin Ġ= Ġpoint . x Ġ- Ġmeasured Width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æİ§ä»¶ åı¯ è§ģ ï¼Į å¹¶ å¼Ģå§ĭ åĬ¨çĶ» ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġset Image Resource ( m Focus Img ) ĊĠĠĠĠĠĠĠ Ġstart Animation ( m Animation ) ĊĠĠĠĠĠĠĠ Ġ// 3 ç§Ĵ åĲİ éļĲèĹı View ãĢĤ åľ¨ æŃ¤ å¤Ħ è®¾ç½® æĺ¯ çĶ±äºİ åı¯èĥ½ èģļ çĦ ¦ äºĭä»¶ åı¯èĥ½ ä¸į è§¦åıĳ ãĢĤ ĊĠĠĠĠĠĠĠ Ġm Handler !!. post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ}, Ġ 3 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èģļ çĦ ¦ æĪĲåĬŁ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Focus Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image Resource ( m Focus Suc ceed Img ) ĊĠĠĠĠĠĠĠ Ġ// ç§»éĻ¤ åľ¨ start Focus ä¸Ń è®¾ç½® çļĦ callback ï¼Į 1 ç§Ĵ åĲİ éļĲèĹı è¯¥ æİ§ä»¶ ĊĠĠĠĠĠĠĠ Ġm Handler !!. remove Callbacks ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġm Handler !!. post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èģļ çĦ ¦ å¤±è´¥ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Focus Failed () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image Resource ( m Focus Failed Img ) ĊĠĠĠĠĠĠĠ Ġ// ç§»éĻ¤ åľ¨ start Focus ä¸Ń è®¾ç½® çļĦ callback ï¼Į 1 ç§Ĵ åĲİ éļĲèĹı è¯¥ æİ§ä»¶ ĊĠĠĠĠĠĠĠ Ġm Handler !!. remove Callbacks ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġm Handler !!. post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® å¼Ģå§ĭ èģļ çĦ ¦ æĹ¶çļĦ åĽ¾çīĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġfocus ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Focus Img ( focus : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Focus Img Ġ= Ġfocus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® èģļ çĦ ¦ æĪĲåĬŁ æĺ¾ç¤º çļĦ åĽ¾çīĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġfocus Suc ceed ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Focus Suc ceed Img ( focus Suc ceed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Focus Suc ceed Img Ġ= Ġfocus Suc ceed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= Ġ" Focus ImageView " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠNO _ ID Ġ= Ġ- 1 ĊĠĠĠ Ġ} Ċ } Ċ