package Ġir . dr ax . expand able Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Transformation Ċ Ċ class ĠResize Animation ( private Ġval Ġview : View , Ġprivate Ġval Ġtarget Height : Int , Ġprivate Ġval Ġstart Height : Int , Ġprivate Ġval Ġinterpolate : Interpol ate ?= null ): ĠAnimation () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinterpol ator = Accel erate De cel erate Interpolator () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwill Change Bounds (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply Transformation ( interpol ated Time : ĠFloat , Ġt : ĠTransformation ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( interpol ated Time == 1 f ) return Ġ// ĠTo Ġstop Ġany Ġextra Ġlayout Ġchanges Ġright Ġafter Ġthe Ġanimation Ġended -> ĠTo Ġavoid Ġthreshold Ġbugs ĊĠĠĠĠĠĠĠ Ġval Ġnew Height Ġ= Ġstart Height Ġ+ Ġ( target Height Ġ- Ġstart Height ) Ġ* Ġinterpolated Time ĊĠĠĠĠĠĠĠ Ġ// to Ġsupport Ġde cent Ġanimation , Ġchange Ġnew Ġhe igt Ġas ĠN ico ĠS . Ġrecommended Ġin Ġcomments ĊĠĠĠĠĠĠĠ Ġ// int Ġnew Height Ġ= Ġ( int ) Ġ( start Height +( target Height Ġ- Ġstart Height ) Ġ* Ġinterpolated Time ); ĊĠĠĠĠĠĠĠ Ġinterpolate ?. interpolate ( interpol ated Time ) ĊĠĠĠĠĠĠĠ Ġview . layout Params . height Ġ= Ġnew Height . toInt () ĊĠĠĠĠĠĠĠ Ġview . request Layout () ĊĠĠĠ Ġ} Ċ }