<分区>
我想显示一个 ViewPager
具有弹跳/弹性滑动效果。我想这可以使用 PageTransformer
的某种组合来实现和一个 BounceInterpolator
.
我不知道的是如何。到目前为止,我无法做到这一点。
PageTransformer
的典型示例如下所示:
public class TypicalPageTransformer implements ViewPager.PageTransformer {
@Override
public void transformPage(View view, float position) {
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1);
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(1 - position);
// Counteract the default slide transition
view.setTranslationX(pageWidth * -position);
// Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE
+ (1 - MIN_SCALE) * (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0);
}
}
}
问题是,我们如何带来 Interpolator
(任何一种)到这里的图片? 我们从哪里得到Animation
ViewPager
动画的对象,以便为其设置一个 Interpolator
?
我已经引用了以下帖子:
第三篇文章的答案提到了这种方法,但没有提供任何细节。
有谁知道我们如何将 BounceInterpolator
与 PageTransformer
结合起来?这似乎是解决这个问题的有机且连贯的方法,但它有可能吗?还是对此有另一种合乎逻辑的解决方案?
引用资料:
注意:
应该可以简单地通过组合 Interpolator
和 PageTransformer
来实现弹性/弹跳动画效果,而无需扩展ViewPager
。其他方法也欢迎,但请提供详细的代码解决方案,而不仅仅是大纲。