我產生了懷疑的只是陰影約setPageMargin,因爲它只有在傳入視圖具有Alpha透明度時才起作用。我的意思是,它似乎是保證金有一個錯誤的高程和它所代表的傳入視圖下方,但也許我已經找到了一個折中
這是在保證金和自定義該活動的代碼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());
其中可拉伸定義爲
<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>
最後,在PageTransformer,在那裏我有位置和alpha扮演找到一個可以接受的效果
@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);
}
}
產生的影響的方法210是你在上面的GIF看,但我敢肯定,在那裏,有一個更好的實現這種效果的方法