package Ġcn . vi 1 zen . trans f ere e . transfer Ċ Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġcn . vi 1 zen . trans f ere e . indicator . interfaces . I Progress Indicator Ċ import Ġcn . vi 1 zen . trans f ere e . view . image . Transfer Image Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . DataSource Ċ import Ġcom . bump tech . glide . load . engine . G lide Exception Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġæ ² ¡ æľī ç¼© çķ¥ åĽ¾ ĠImageView , Ġ çĽ´æİ¥ åľ¨ Ġtrans f ere e Ġä¸Ń å±ķç¤º åĽ¾çīĩ Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠV ans ĠZ Ġon Ġ 2 0 2 0 / 4 / 1 6 . Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġemail : Ġ 1 9 6 4 2 5 2 5 4 @ qq . com Ċ Ġ*/ Ċ class ĠNone Thumb State Ġinternal Ġconstructor ( transfer : ĠTransfer Layout ) Ġ: ĠTransfer State ( transfer ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġprepare Transfer ( trans Image : ĠTransfer Image , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ æŃ¤ ç§į çĬ¶æĢģ ä¸ĭ æĹł éľĢ å¤ĦçĲĨ Ġprepare Transfer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransfer In ( position : ĠInt ): ĠTransfer Image ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtransfer . display Transfer () ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransfer Load ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġtransfer . trans Adapter ĊĠĠĠĠĠĠĠ Ġval Ġtrans Config Ġ= Ġtransfer . trans Config ĊĠĠĠĠĠĠĠ Ġval Ġsource Model Ġ= Ġtrans Config . getSource Model List ()[ position ] ĊĠĠĠĠĠĠĠ Ġval Ġtarget Image Ġ= Ġadapter . getImage Item ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrans Config . getCache ( trans Config . getSource Key List ()[ position ]) ĊĠĠĠĠĠĠĠ Ġif Ġ( cache Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaceholder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrans Config . getM iss Drawable ( transfer . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æĮī ç¼º çľģ çļĦ Ġdrawable Ġ å¤§å°ı è£ ģ åī ª åĪĿå§ĭ æĺ¾ç¤º çļĦ åĽ¾çīĩ åĮºåŁŁ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Size Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( placeholder !!. intrinsic Width , Ġplaceholder . intrinsic Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclip Target Image ( target Image , Ġplaceholder , Ġclip Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Indicator Ġ= Ġtrans Config . progress Indicator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Indicator . attach ( position , Ġadapter . getParent Item ( position )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Image . setImage Drawable ( placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Source Image ( target Image , Ġprogress Indicator , Ġsource Model , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Factory . decode File ( cache . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Image . setImage Drawable ( trans Config . getM iss Drawable ( transfer . context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Image . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Source Image ( target Image , Ġnull , Ġsource Model , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Source Image ( ĊĠĠĠĠĠĠĠ Ġtarget Image : ĠTransfer Image , Ġprogress Indicator : ĠI Progress Indicator ?, ĊĠĠĠĠĠĠĠ Ġsource Model : ĠAny , Ġposition : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Indicator ?. onStart ( position ) ĊĠĠĠĠĠĠĠ Ġtransfer . trans Config . getImage Loader (). load ( target Image . context , source Model , on Success Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Preview ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Model . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Indicator ?. on Finish ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Image . transform In () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, on Failure Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Failed Drawable ( target Image , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransfer Out ( position : ĠInt ): ĠTransfer Image ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ åĽłä¸º æ²¡æľī ç¼© çķ¥ åĽ¾ ĠImageView Ġï¼Į çĽ´æİ¥ è¿ĶåĽŀ null , æī§è¡Į æī© æķ£ åĬ¨çĶ» ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }