/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠY au hen ĠLand ar ski . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . github . land ar sk iy . reuse . sample . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Matrix Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView ĊĊ Ċ class ĠBottom Crop ImageView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠAppCompat ImageView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġset Frame ( l : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġ== Ġnull ) Ġreturn Ġsuper . set Frame ( l , Ġt , Ġr , Ġb ) ĊĠĠĠĠĠĠĠ Ġval Ġmatrix : ĠMatrix Ġ= Ġimage Matrix ĊĠĠĠĠĠĠĠ Ġval Ġscale : ĠFloat ĊĠĠĠĠĠĠĠ Ġval Ġview Width Ġ= Ġmeasured Width Ġ- Ġpadding Left Ġ- Ġpadding Right ĊĠĠĠĠĠĠĠ Ġval Ġview Height Ġ= Ġmeasured Height Ġ- Ġpadding Top Ġ- Ġpadding Bottom ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Width Ġ= Ġdrawable . intrinsic Width ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Height Ġ= Ġdrawable . intrinsic Height ĊĊĠĠĠĠĠĠĠ Ġscale Ġ= Ġif Ġ( drawable Width Ġ* Ġview Height Ġ> Ġdrawable Height Ġ* Ġview Width ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Height . toFloat () Ġ/ Ġdrawable Height . toFloat () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Width . toFloat () Ġ/ Ġdrawable Width . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdrawable Rect Ġ= ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , Ġdrawable Height Ġ- Ġview Height Ġ/ Ġscale , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Width . toFloat (), Ġdrawable Height . toFloat () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview Rect Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġview Width . toFloat (), Ġview Height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġmatrix . set Rect To Rect ( drawable Rect , Ġview Rect , ĠMatrix . Scale To Fit . FILL ) ĊĠĠĠĠĠĠĠ Ġimage Matrix Ġ= Ġmatrix ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . set Frame ( l , Ġt , Ġr , Ġb ) ĊĠĠĠ Ġ} Ċ }