File tree Expand file tree Collapse file tree 5 files changed +84
-7
lines changed
app/src/main/java/me/kungfucat/pagetransformerslibrary
viewpagertransformers/src/main/java/me/kungfucat/viewpagertransformers Expand file tree Collapse file tree 5 files changed +84
-7
lines changed Original file line number Diff line number Diff line change 10
10
11
11
import java .util .ArrayList ;
12
12
13
- import me .kungfucat .viewpagertransformers .DepthPageTransformer ;
14
- import me .kungfucat .viewpagertransformers .DrawerTransformer ;
15
- import me .kungfucat .viewpagertransformers .WindmillTransformer ;
16
- import me .kungfucat .viewpagertransformers .ZoomOutPageTransformer ;
13
+ import me .kungfucat .viewpagertransformers .RaiseFromCenterTransformer ;
14
+ import me .kungfucat .viewpagertransformers .RotateAboutBottomTransformer ;
15
+ import me .kungfucat .viewpagertransformers .RotateAboutTopTransformer ;
17
16
18
17
public class MainActivity extends AppCompatActivity {
19
18
@@ -43,7 +42,8 @@ protected void onCreate(Bundle savedInstanceState) {
43
42
// viewPager.setPageTransformer(true,new CubeOutTransformer());
44
43
// viewPager.setPageTransformer(true, new RandomTransformer());
45
44
// viewPager.setPageTransformer(true, new DepthPageTransformer());
46
- viewPager .setPageTransformer (true , new DrawerTransformer ());
45
+ // viewPager.setPageTransformer(true, new RotateAboutTopTransformer());
46
+ viewPager .setPageTransformer (true ,new RaiseFromCenterTransformer ());
47
47
}
48
48
49
49
Original file line number Diff line number Diff line change 7
7
public class DrawerTransformer implements ViewPager .PageTransformer {
8
8
@ Override
9
9
public void transformPage (@ NonNull View page , float position ) {
10
- int width = page .getWidth ();
10
+ int width = page .getWidth ();
11
11
12
12
if (position < -1 ) {
13
13
page .setTranslationX (0 );
14
14
} else if (position > 0 && position <= 1 ) {
15
- page .setTranslationX (-width /2 * position );
15
+ page .setTranslationX (-width /2 * position );
16
16
} else {
17
17
page .setTranslationX (0 );
18
18
}
Original file line number Diff line number Diff line change
1
+ package me .kungfucat .viewpagertransformers ;
2
+
3
+ import android .support .annotation .NonNull ;
4
+ import android .support .v4 .view .ViewPager ;
5
+ import android .view .View ;
6
+
7
+ public class RaiseFromCenterTransformer implements ViewPager .PageTransformer {
8
+ @ Override
9
+ public void transformPage (@ NonNull View page , float position ) {
10
+ int width = page .getWidth (), height = page .getHeight ();
11
+
12
+ if (position < -1 ) {
13
+ page .setTranslationX (0 );
14
+ } else if (position < 0 ) {
15
+
16
+ float scale = 1 + position ;
17
+ page .setPivotX (width /2 );
18
+ page .setPivotY (height /2 );
19
+ page .setScaleY (scale );
20
+ page .setScaleX (scale );
21
+ // Counteract the default motion
22
+ page .setTranslationX (-position *width );
23
+ } else if (position < 1 ) {
24
+ float scale = 1 - position ;
25
+ page .setPivotX (width /2 );
26
+ page .setPivotY (height /2 );
27
+ page .setScaleY (scale );
28
+ page .setScaleX (scale );
29
+ // Counteract the default motion
30
+ page .setTranslationX (-width * position );
31
+
32
+ } else {
33
+ page .setTranslationX (0 );
34
+ }
35
+ }
36
+ }
Original file line number Diff line number Diff line change
1
+ package me .kungfucat .viewpagertransformers ;
2
+
3
+ import android .support .annotation .NonNull ;
4
+ import android .support .v4 .view .ViewPager ;
5
+ import android .view .View ;
6
+
7
+ public class RotateAboutBottomTransformer implements ViewPager .PageTransformer {
8
+ @ Override
9
+ public void transformPage (@ NonNull View page , float position ) {
10
+
11
+ final float width = page .getWidth (), height = page .getHeight ();
12
+
13
+ // Rotate about centre bottom part
14
+ page .setPivotX (width / 2 );
15
+ page .setPivotY (height );
16
+ // Rotate 20 degrees in anticlockwise
17
+ // If want to rotate clockwise, use negative sign
18
+ page .setRotation (position * 20 );
19
+
20
+ }
21
+ }
Original file line number Diff line number Diff line change
1
+ package me .kungfucat .viewpagertransformers ;
2
+
3
+ import android .support .annotation .NonNull ;
4
+ import android .support .v4 .view .ViewPager ;
5
+ import android .view .View ;
6
+
7
+ public class RotateAboutTopTransformer implements ViewPager .PageTransformer {
8
+
9
+ @ Override
10
+ public void transformPage (@ NonNull View page , float position ) {
11
+
12
+ final float width = page .getWidth ();
13
+
14
+ //Rotate about top centre of screen, i.e pivoted at width/2 and 0
15
+ page .setPivotX (width /2 );
16
+ page .setPivotY (0f );
17
+ page .setRotation (-position *20 );
18
+
19
+ }
20
+ }
You can’t perform that action at this time.
0 commit comments