package Ġorg . step ic . d roid . ui . custom Ċ Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . view . View Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġorg . step ic . d roid . R Ċ Ċ class ĠOn boarding Page Transformer Ġ: ĠView Pager . Page Transformer Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdistance Ġ= Ġ 2 0 0 0 0 f ĊĊĠĠĠ Ġoverride Ġfun Ġtransform Page ( root View : ĠView , Ġposition : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Pager Ġ= Ġroot View . parent Ġas ĠView Pager ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġroot View . findViewById < Lot tie Animation View >( R . id . on boarding Animation View ) ĊĠĠĠĠĠĠĠ Ġval Ġpercentage Ġ= Ġ 1 Ġ- ĠMath . abs ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġroot View . resources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġpage . camera Distance Ġ= Ġscale Ġ* Ġdistance ĊĠĠĠĠĠĠĠ Ġset Visibility ( page , Ġposition ) ĊĠĠĠĠĠĠĠ Ġset Translation ( root View , Ġpage , Ġview Pager ) ĊĠĠĠĠĠĠĠ Ġset Rotation ( page , Ġposition , Ġpercentage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Visibility ( page : ĠView , Ġposition : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 . 5 Ġ&& Ġposition Ġ> Ġ- 0 . 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Translation ( root View : ĠView , Ġpage : ĠView , Ġview Pager : ĠView Pager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscroll X Ġ= Ġview Pager . scroll X ĊĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġroot View . left ĊĠĠĠĠĠĠĠ Ġval Ġscroll Ġ= Ġscroll X Ġ- Ġleft ĊĠĠĠĠĠĠĠ Ġpage . translation X Ġ= Ġscroll . toFloat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Rotation ( page : ĠView , Ġposition : ĠFloat , Ġpercentage : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . rotation Y Ġ= Ġ- 1 8 0 Ġ* Ġ( percentage Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage . rotation Y Ġ= Ġ 1 8 0 Ġ* Ġ( percentage Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ