0

我正在尝试通过覆盖 transformPage() 方法在视图寻呼机中的页面滑动中做一些动画,这样当我从右向左滑动时,新页面(来自右侧的页面)应该尽快出现在上一页下方当动画开始时,上一页应该滑到新页面的左侧。当我从左向右滑动时,新页面应该直接滑过上一页并完全覆盖它。但我无法实现它。我尝试了以下方法:-

if(position > 0 && position < 1)
{
    int pageWidth = page.getWidth();
    float translateValue = (-position * pageWidth);
    if(translateValue < pageWidth)
    {
        translationX = translateValue;
    }
    else
    {
        translationX = 0;
    }
}
else 
{
    alpha = 1;
    scale = 1;
    translationX = 0;
}

请提供一些建议。谢谢

4

1 回答 1

0

这应该像你想要的那样工作,你只需要把它放在你的 PagerTransformer 类中:

private static final float MIN_SCALE_DEPTH = 0.75f;

 @Override
public void transformPage(View page, float position) {
    final float alpha;
    final float scale;
    final float translationX;


            if (position > 0 && position < 1) {
                alpha = (1 - position);
                scale = MIN_SCALE_DEPTH + (1 - MIN_SCALE_DEPTH) * (1 - Math.abs(position));
                translationX = (page.getWidth() * -position);
            } else {
                alpha = 1;
                scale = 1;
                translationX = 0;
            }

    page.setAlpha(alpha);
    page.setTranslationX(translationX);
    page.setScaleX(scale);
    page.setScaleY(scale);
于 2015-09-21T07:52:27.500 回答