Android ViewPager动画库应用程序

Android ViewPager动画库应用程序,android,animation,android-viewpager,Android,Animation,Android Viewpager,我正在尝试更改我的ViewPager过渡动画。 当您从一张照片切换到下一张照片时,我希望具有与默认图库相同的行为。它基本上是一个动画,当前页面向左移动,而下一个页面从后面移动并变大 我已经看到我可以用PageTransformer更改动画 pager.setPageTransformer(false, new PageTransformer() { @Override public void transformPage(View page, float posi

我正在尝试更改我的ViewPager过渡动画。 当您从一张照片切换到下一张照片时,我希望具有与默认图库相同的行为。它基本上是一个动画,当前页面向左移动,而下一个页面从后面移动并变大

我已经看到我可以用PageTransformer更改动画

pager.setPageTransformer(false, new PageTransformer() {

        @Override
        public void transformPage(View page, float position) {
            if (position < 0) {

            } else {
                final float normalizedposition = Math.abs(Math.abs(position) - 1);
                page.setScaleX(normalizedposition / 2 + 0.5f);
                page.setScaleY(normalizedposition / 2 + 0.5f);
            }
        }
    });
pager.setPageTransformer(错误,新的PageTransformer(){
@凌驾
公共页面(查看页面、浮动位置){
如果(位置<0){
}否则{
最终浮动规格化位置=数学abs(数学abs(位置)-1);
第页设置刻度(标准化位置/2+0.5f);
第页设置刻度(标准化位置/2+0.5f);
}
}
});
这样,我就可以让当前页面向左滑动了,没关系。 新页面从小到大,这也没关系。但是,页面从右到中。我想删除翻译,并已经在中间,但小,隐藏在当前页。< /P> 如果我添加
page.setTranslationX(1080*((位置))接下来的页面停留在屏幕的中间,但是它们在当前页面上方的所有时间都是可见的。如果我也将alpha添加到页面中,则显示的页面不会隐藏在旧页面的后面


我试图签入gallery应用程序的源代码,但没有找到任何对
transformPage
功能的引用。

结果很简单。它在android开发者网站的演示中

public class DepthPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.75f;

public void transformPage(View view, float position) {
    int pageWidth = view.getWidth();

    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);
    }
}
}
公共类DepthPageTransformer实现ViewPager.PageTransformer{
专用静态最终浮动最小刻度=0.75f;
公共页面(视图、浮动位置){
int pageWidth=view.getWidth();
if(位置<-1){/[-无穷大,-1)
//这个页面在屏幕的左边。
视图。setAlpha(0);
}否则,如果(位置)