【发布时间】:2016-09-30 09:22:09
【问题描述】:
我想显示一个具有弹跳/弹性滑动效果的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(任何类型的)带入这里的图片中? 我们从哪里得到ViewPager的动画的Animation对象,以便为它设置一个Interpolator?
我已经参考了以下帖子:
第三篇文章的答案提到了这种方法,但没有提供任何细节。
有谁知道我们如何将BounceInterpolator 与PageTransformer 结合起来?这似乎是解决这个问题的有机和连贯的方法,但它甚至可能吗?还是有其他合乎逻辑的解决方案?
参考资料:
注意:
应该可以简单地通过组合Interpolator 和PageTransformer 来实现弹性/反弹动画效果,而无需扩展ViewPager。也欢迎其他方法,但请提供带有代码的详细解决方案,而不仅仅是大纲。
【问题讨论】:
-
这个例子会成立吗? github.com/chenupt/SpringIndicator
-
自定义 viewpager 并在 ontTouchEvent 中使用一组按顺序播放的 ValueAnimators 缩放列表视图。
标签: android android-fragments android-viewpager android-animation android-pagetransformer