package Ġcom . example . pic asso Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġandroid . widget . ImageView . Scale Type . CENTER _ C ROP Ċ import Ġcom . example . pic asso . provider . Pic asso Provider Ċ Ċ internal Ġclass ĠSample GridView Adapter ( private Ġval Ġcontext : ĠContext ) Ġ: ĠBase Adapter () Ġ{ ĊĠ Ġprivate Ġval Ġurls : ĠList < String > ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġ// ĠEnsure Ġwe Ġget Ġa Ġdifferent Ġordering Ġof Ġimages Ġon Ġeach Ġrun . ĊĠĠĠ Ġval Ġtmp List Ġ= ĠData . URL S . to Mutable List () ĊĠĠĠ Ġtmp List . shuffle () ĊĊĠĠĠ Ġ// ĠTrip le Ġup Ġthe Ġlist . ĊĠĠĠ Ġurls Ġ= ĠlistOf ( tmp List , Ġtmp List , Ġtmp List ). flatten () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget View ( ĊĠĠĠ Ġposition : ĠInt , ĊĠĠĠ ĠconvertView : ĠView ?, ĊĠĠĠ Ġparent : ĠViewGroup ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġval Ġview Ġ= ĠconvertView Ġas ? ĠS quared ImageView Ġ?: ĠS quared ImageView ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġscale Type Ġ= ĠC ENTER _ C ROP ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠGet Ġthe Ġimage ĠURL Ġfor Ġthe Ġcurrent Ġposition . ĊĠĠĠ Ġval Ġurl Ġ= ĠgetItem ( position ) ĊĊĠĠĠ Ġ// ĠTrigger Ġthe Ġdownload Ġof Ġthe ĠURL Ġasynchronously Ġinto Ġthe Ġimage Ġview . ĊĠĠĠ ĠPic asso Provider . get () ĊĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . placeholder ) ĊĠĠĠĠĠĠĠ Ġ. error ( R . drawable . error ) ĊĠĠĠĠĠĠĠ Ġ. fit () ĊĠĠĠĠĠĠĠ Ġ. tag ( context ) ĊĠĠĠĠĠĠĠ Ġ. into ( view ) ĊĊĠĠĠ Ġreturn Ġview ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġurls . size ĊĊĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠString Ġ= Ġurls [ position ] ĊĊĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ= Ġposition . to Long () Ċ }