Ich hatte Zweifel etwa setPageMargin, weil es nur funktioniert, wenn die eingehende Ansicht eine Alpha-Transparenz hat. Ich meine, so scheint es, dass der Rand eine falsche Höhe hat und es steht unter dem eingehenden Blick, aber vielleicht habe ich einen Kompromiss
Dies ist der Code in der Tätigkeit für den Rand und die benutzerdefinierten gefunden PageTransformer
int margin = getResources().getDisplayMetrics().widthPixels/15;
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setPageMargin(margin);
mPager.setPageMarginDrawable(R.drawable.shadow);
mPager.setPageTransformer(true, new StackTransformer());
wo der drawable als
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="360"
android:endColor="#00000000"
android:startColor="#aa000000"
android:type="linear" />
</shape>
an den letzten definiert ist transformPage Verfahren des PageTransformers, wo ich mit der Position und Alpha spielte eine akzeptable Wirkung
@Override
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
if (position < -1) {
view.setAlpha(0);
} else if (position <= 0) {
view.setAlpha(1);
view.setTranslationX(0);
} else if (position <= 1) {
view.setAlpha(1-position/2); // divide by 2 is the trick
view.setTranslationX(pageWidth * -position);
} else {
view.setAlpha(0);
}
}
Der resultierende Effekt zu finden sind, was Sie oben in der gif zu sehen, aber ich bin sicher, dass da draußen, gibt es eine besseres Weg, um diesen Effekt zu erreichen