/
FanTransformation.java
38 lines (28 loc) · 1009 Bytes
/
FanTransformation.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package info.androidhive.viewpager2.transformers;
import android.view.View;
import androidx.viewpager2.widget.ViewPager2;
public class FanTransformation implements ViewPager2.PageTransformer{
@Override
public void transformPage(View page, float position) {
page.setTranslationX(-position*page.getWidth());
page.setPivotX(0);
page.setPivotY(page.getHeight()/2);
page.setCameraDistance(20000);
if (position < -1){ // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0);
}
else if (position <= 0){ // [-1,0]
page.setAlpha(1);
page.setRotationY(-120*Math.abs(position));
}
else if (position <= 1){ // (0,1]
page.setAlpha(1);
page.setRotationY(120*Math.abs(position));
}
else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0);
}
}
}