ViewPager
跳ねる・弾力のあるスライド効果のあるを表示したい。これは、 aPageTransformer
と a の組み合わせを使用して可能であると思いますBounceInterpolator
。
私が知らないのは方法です。これまでのところ、私はこれを達成することができませんでした。
a の典型的な例は、次の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
私はすでに次の投稿を参照しました。
3 番目の投稿には、まさにこのアプローチについて言及している回答がありますが、その方法に関する詳細は提供されていません。
BounceInterpolator
をとを組み合わせる方法を正確に知っている人はいPageTransformer
ますか? これは、この問題に対する有機的で首尾一貫したアプローチのように見えますが、そもそも可能でしょうか? または、これに対する別の論理的な解決策はありますか?
参考文献:
注意:
とを組み合わせるだけで、 を拡張する必要なく、弾性/バウンス アニメーション効果を実現できるはずです。他のアプローチも歓迎しますが、アウトラインだけでなく、コードを含む詳細なソリューションを提供してください。Interpolator
PageTransformer
ViewPager