我想显示ViewPager
具有弹跳/弹性滑动效果的 a。我想这可以使用 aPageTransformer
和 a 的某种组合来实现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
(任何类型的)带入这里?我们从哪里获取 's 动画的Animation
对象ViewPager
,以便为Interpolator
它设置一个?
我已经参考了以下帖子:
第三篇文章的答案提到了这种方法,但没有提供任何细节。
有谁知道我们如何将 aBounceInterpolator
与 a结合起来PageTransformer
?这似乎是解决这个问题的一种有机且连贯的方法,但它甚至可能吗?或者有另一个合乎逻辑的解决方案吗?
参考:
注意:
应该可以通过简单地结合 anInterpolator
和 a来实现弹性/反弹动画效果PageTransformer
,而无需扩展ViewPager
. 也欢迎其他方法,但请提供带有代码的详细解决方案,而不仅仅是大纲。