package Ġcom . example . y xm . phot ogen ic . utils Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Environment Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . widget . Toast Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . target . Custom Target Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . bump tech . glide . request . transition . Transition Ċ import Ġcom . example . lib _ image loader . G lide App Ċ import Ġcom . example . lib _ image loader . Image Loader Manager Ċ import Ġcom . example . y xm . phot ogen ic . application . My Application Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* Created Ġby Ġy xm Ġon Ġ 2 0 2 0 / 3 / 1 2 Ċ Ġ*@ function Ġæĸĩä»¶ æĵįä½ľ å¸®åĬ© ç±» Ċ Ġ*/ Ċ object ĠFile Helper Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠmContext Ġ= ĠMy Application . instance ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢĤ éħį Android 1 0 ä½ľçĶ¨ åŁŁ åŃĺåĤ¨ , éľĢ å°Ĩ target SDK æĮĩå®ļ ä¸º 2 9 åıĬ ä»¥ä¸Ĭ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbitmap ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Bitmap To Album ( bitmap : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( Media Store . Media Columns . DISPLAY _ NAME , ĠSystem . currentTimeMillis (). toString () Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( Media Store . Media Columns . MIME _ TYPE , Ġ" image / jpeg ") ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put ( Media Store . Media Columns . REL ATIVE _ PATH , ĠEnvironment . DIRECTORY _ PI CTURE S ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put ( Media Store . Media Columns . DATA , ĠEnvironment . get External Storage Directory (). path Ġ+ Ġ"/" Ġ+ ĠEnvironment . DIRECTORY _ PI CTURE S Ġ+ Ġ"/" Ġ+ ĠSystem . currentTimeMillis () Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠmContext . content Resolver . insert ( Media Store . Images . Media . EXTERNAL _ CONTENT _ URI , Ġcontent Values ) ĊĠĠĠĠĠĠĠ Ġif Ġ( uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . content Resolver . open OutputStream ( uri ). use Ġ{ ĠoutputStream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( output Stream Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . compress ( Bitmap . Compress Format . JPEG , Ġ 8 0 , ĠoutputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" ä¿ĿåŃĺ æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä½¿çĶ¨ glide ä¸ĭè½½ åĽ¾çīĩ å¹¶ ä¿ĿåŃĺ åĪ° æľ¬åľ° åĽ¾ åºĵ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Image ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" ä¸ĭè½½ ä¸Ń ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ ĠG lide . get ( mContext ). clear Memory () ĊĠĠĠĠĠĠĠ ĠG lide . with ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( object Ġ: ĠCustom Target < Bitmap >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( resource : ĠBitmap , Ġtransition : ĠTransition < in ĠBitmap > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Bitmap To Album ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Cle ared ( placeholder : ĠDrawable ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }