package Ġcom . jn . k ik uk t . widget . view pager Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . os . Build Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġandroid . view . View Ċ Ċ /** Ċ Ġ* ĠAuthor ï¼ļ St ev ie . Ch en ĠTime ï¼ļ 2 0 1 9 / 7 / 1 2 Ċ Ġ* ĠClass ĠComment ï¼ļ Ċ Ġ*/ Ċ class ĠRotate Y Transformer Ġ: ĠBase Page Transformer Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Max Rotate Ġ= ĠDEFAULT _ MAX _ ROT ATE ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ MAX _ ROT ATE Ġ= Ġ 3 5 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor () ĊĊĠĠĠ Ġconstructor ( max Rotate : ĠFloat ) Ġ: Ġthis ( max Rotate , ĠNon Page Transformer . INSTANCE ) ĊĊĠĠĠ Ġconstructor ( page Transformer : ĠView Pager . Page Transformer ) Ġ: Ġthis ( DEFAULT _ MAX _ ROT ATE , Ġpage Transformer ) ĊĊĠĠĠ Ġconstructor ( max Rotate : ĠFloat , Ġpage Transformer : ĠView Pager . Page Transformer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Max Rotate Ġ= Ġmax Rotate ĊĠĠĠĠĠĠĠ Ġm Page Transformer Ġ= Ġpage Transformer ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . H ONE Y COMB ) ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġpage Transform ( view : ĠView , Ġposition : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . pivot Y Ġ= Ġ( view . height Ġ/ Ġ 2 ). toFloat () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ- 1 ) Ġ{ Ġ// Ġ[- Infinity ,- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġpage Ġis Ġway Ġoff - screen Ġto Ġthe Ġleft . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . rotation Y Ġ= Ġ- 1 Ġ* Ġm Max Rotate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= Ġview . width . toFloat () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ<= Ġ 1 ) Ġ{ Ġ// Ġ[- 1 , 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠModify Ġthe Ġdefault Ġslide Ġtransition Ġto Ġshrink Ġthe Ġpage Ġas Ġwell ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . rotation Y Ġ= Ġposition Ġ* Ġm Max Rotate ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ 0 ,- 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . width Ġ* Ġ( Base Page Transformer . DEFAULT _ CENTER Ġ+ ĠBase Page Transformer . DEFAULT _ CENTER Ġ* Ġ- position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= Ġview . width . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ 1 , 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= Ġview . width . toFloat () Ġ* ĠBase Page Transformer . DEFAULT _ CENTER Ġ* Ġ( 1 Ġ- Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠScale Ġthe Ġpage Ġdown Ġ( between ĠMIN _ SCALE Ġand Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġ( 1 , + Infinity ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġpage Ġis Ġway Ġoff - screen Ġto Ġthe Ġright . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . rotation Y Ġ= Ġ 1 Ġ* Ġm Max Rotate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . pivot X Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }