Skip to content

Commit 333cbd7

Browse files
committed
Added Accordion Transformer
1 parent 8ec3fb6 commit 333cbd7

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

app/src/main/java/me/kungfucat/pagetransformerslibrary/MainActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.util.ArrayList;
1212

13+
import me.kungfucat.viewpagertransformers.AccordionTransformer;
1314
import me.kungfucat.viewpagertransformers.RaiseFromCenterTransformer;
1415
import me.kungfucat.viewpagertransformers.RotateAboutBottomTransformer;
1516
import me.kungfucat.viewpagertransformers.RotateAboutTopTransformer;
@@ -43,7 +44,7 @@ protected void onCreate(Bundle savedInstanceState) {
4344
// viewPager.setPageTransformer(true, new RandomTransformer());
4445
// viewPager.setPageTransformer(true, new DepthPageTransformer());
4546
// viewPager.setPageTransformer(true, new RotateAboutTopTransformer());
46-
viewPager.setPageTransformer(true,new RaiseFromCenterTransformer());
47+
viewPager.setPageTransformer(true,new AccordionTransformer());
4748
}
4849

4950

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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 AccordionTransformer 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.setScaleX(0);
14+
} else if (position < 0) {
15+
// For the page going off screen,
16+
// start from the right side of the page
17+
// and scale it down
18+
float scale = 1 + position;
19+
page.setPivotX(width);
20+
page.setScaleX(scale);
21+
} else if (position < 1) {
22+
// For the page enetering the scene,
23+
// for the left side, set pivot, i.e. initial value=0, and expand from there
24+
float scale = 1 - position;
25+
page.setPivotX(0);
26+
page.setScaleX(scale);
27+
} else {
28+
page.setScaleX(0);
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)