ViewPager让当前item放大
时间: 2023-05-17 13:04:40 浏览: 100
您可以使用 ViewPager.PageTransformer 接口来实现这个效果。以下是一个简单的示例代码:
```
viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
private static final float MIN_SCALE = 0.75f;
private static final float MIN_ALPHA = 0.5f;
@Override
public void transformPage(View page, float position) {
int pageWidth = page.getWidth();
int pageHeight = page.getHeight();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
page.setAlpha(0f);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
page.setAlpha(1f);
page.setTranslationX(0f);
page.setScaleX(1f);
page.setScaleY(1f);
} else if (position <= 1) { // (0,1]
// Fade the page out.
page.setAlpha(1 - position);
// Counteract the default slide transition
page.setTranslationX(pageWidth * -position);
// Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE
+ (1 - MIN_SCALE) * (1 - Math.abs(position));
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
} else { // (1,+Infinity]
// This page is way off-screen to the right.
page.setAlpha(0f);
}
}
});
```
这个代码片段会让当前的 ViewPager item 在屏幕中央放大,而其它的 item 则会逐渐变小并淡出。您可以根据自己的需求进行修改。