如何实现具有stackview类型外观的viewpager

时间:2015-11-23 09:01:22

标签: android-viewpager stackview

我需要实现具有外观和效果的viewpager感觉和动画就像android中的stackview小部件一样。我已经调查过了 https://github.com/blipinsk/FlippableStackView/tree/master/library/src/main/java/com/bartoszlipinski/flippablestackview。 但这并不符合我的目的,因为视图是通过翻转动画制作动画的。任何帮助都会受到影响。

1 个答案:

答案 0 :(得分:0)

没关系,我通过实现自定义PageTransfrormer解决了这个问题。

代码:

公共类DepthPageTransformer实现了ViewPager.PageTransformer {

private static final float DEFAULT_CURRENT_PAGE_SCALE = 0.8f;
private int dimen;

public void transformPage(View view, float position) {
    view.setScaleX(DEFAULT_CURRENT_PAGE_SCALE);
    view.setScaleY(DEFAULT_CURRENT_PAGE_SCALE);
    dimen = view.getWidth();

    if(position < -1) {
        view.setAlpha(0);

    } else if(position <= 0) {
        view.setAlpha(1.0f);
        view.setTranslationX(0);
        view.setTranslationY(0);

    } else if(position <= 1+1) {
        view.setTranslationX(dimen * -position);
        view.setAlpha(-0.5f * position + 1.0f);
        view.setTranslationX((-dimen / 1.1F) * position);
        view.setTranslationY((dimen / 9.9f)*position);

    } else {
        view.setAlpha(0);
    }

}

}

用法: 实例化viewpager,然后将自定义viewpager转换器设置为: - viewpager.setPageTransformer(true,new DepthPageTransformer());