android.support.v4.view.ViewPager#PageTransformer ( )源码实例Demo

下面列出了android.support.v4.view.ViewPager#PageTransformer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: SprintNBA   文件: VerticalViewPager.java
/**
 * Set a {@link android.support.v4.view.ViewPager.PageTransformer} that will be called for each
 * attached page whenever
 * the scroll position is changed. This allows the application to apply custom property
 * transformations to each page, overriding the default sliding look and feel.
 * <p/>
 * <p><em>Note:</em> Prior to Android 3.0 the property animation APIs did not exist.
 * As a result, setting a PageTransformer prior to Android 3.0 (API 11) will have no effect.</p>
 *
 * @param reverseDrawingOrder true if the supplied PageTransformer requires page views
 * to be drawn from last to first instead of first to last.
 * @param transformer PageTransformer that will modify each page's animation properties
 */
public void setPageTransformer(boolean reverseDrawingOrder,
    ViewPager.PageTransformer transformer) {
  if (Build.VERSION.SDK_INT >= 11) {
    final boolean hasTransformer = transformer != null;
    final boolean needsPopulate = hasTransformer != (mPageTransformer != null);
    mPageTransformer = transformer;
    setChildrenDrawingOrderEnabledCompat(hasTransformer);
    if (hasTransformer) {
      mDrawingOrder = reverseDrawingOrder ? DRAW_ORDER_REVERSE : DRAW_ORDER_FORWARD;
    } else {
      mDrawingOrder = DRAW_ORDER_DEFAULT;
    }
    if (needsPopulate) populate();
  }
}
 
@Override
public void setPageTransformer(final boolean reverseDrawingOrder, final ViewPager.PageTransformer transformer) {
    super.setPageTransformer(
            false, mInfiniteCycleManager == null ?
                    transformer : mInfiniteCycleManager.getInfinityCyclePageTransformer()
    );
}
 
public void addTransformer(ViewPager.PageTransformer transformer) {
    if (transformer != null) {
        mTransformers.add(transformer);
    }
}
 
源代码4 项目: MagicViewPager   文件: RotateUpPageTransformer.java
public RotateUpPageTransformer(ViewPager.PageTransformer pageTransformer)
{
    this(DEFAULT_MAX_ROTATE, pageTransformer);
}
 
源代码5 项目: XBanner   文件: XBanner.java
/**
 * 自定义翻页动画效果
 * @param transformer
 */
public void setCustomPageTransformer(ViewPager.PageTransformer transformer) {
    if (transformer != null && mViewPager != null) {
        mViewPager.setPageTransformer(true, transformer);
    }
}
 
源代码6 项目: relight   文件: WidgetPager.java
public WidgetPager pageTransformer(boolean reverseDrawingOrder, @Nullable ViewPager.PageTransformer transformer, int pageLayerType) {
    view.setPageTransformer(reverseDrawingOrder, transformer, pageLayerType);
    return self();
}
 
public RotateDownPageTransformer(ViewPager.PageTransformer pageTransformer)
{
    this(DEFAULT_MAX_ROTATE, pageTransformer);
}
 
源代码8 项目: MagicViewPager   文件: ScaleInTransformer.java
public ScaleInTransformer(ViewPager.PageTransformer pageTransformer)
{
    this(DEFAULT_MIN_SCALE, pageTransformer);
}
 
源代码9 项目: Prodigal   文件: IntroActivity.java
public void setPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer transformer) {
    pager.setPageTransformer(reverseDrawingOrder, transformer);
}
 
源代码10 项目: KUtils   文件: BGAViewPager.java
@Override
public void setPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer transformer) {
    /**
     继承ViewPager,重写setPageTransformer方法,移除版本限制,通过反射设置参数和方法

     getDeclaredMethod*()获取的是【类自身】声明的所有方法,包含public、protected和private方法。
     getMethod*()获取的是类的所有共有方法,这就包括自身的所有【public方法】,和从基类继承的、从接口实现的所有【public方法】。

     getDeclaredField获取的是【类自身】声明的所有字段,包含public、protected和private字段。
     getField获取的是类的所有共有字段,这就包括自身的所有【public字段】,和从基类继承的、从接口实现的所有【public字段】。
     */
    Class viewpagerClass = ViewPager.class;

    try {
        boolean hasTransformer = transformer != null;

        Field pageTransformerField = viewpagerClass.getDeclaredField("mPageTransformer");
        pageTransformerField.setAccessible(true);
        PageTransformer mPageTransformer = (PageTransformer) pageTransformerField.get(this);

        boolean needsPopulate = hasTransformer != (mPageTransformer != null);
        pageTransformerField.set(this, transformer);

        Method setChildrenDrawingOrderEnabledCompatMethod = viewpagerClass.getDeclaredMethod("setChildrenDrawingOrderEnabledCompat", boolean.class);
        setChildrenDrawingOrderEnabledCompatMethod.setAccessible(true);
        setChildrenDrawingOrderEnabledCompatMethod.invoke(this, hasTransformer);

        Field drawingOrderField = viewpagerClass.getDeclaredField("mDrawingOrder");
        drawingOrderField.setAccessible(true);
        if (hasTransformer) {
            drawingOrderField.setInt(this, reverseDrawingOrder ? 2 : 1);
        } else {
            drawingOrderField.setInt(this, 0);
        }

        if (needsPopulate) {
            Method populateMethod = viewpagerClass.getDeclaredMethod("populate");
            populateMethod.setAccessible(true);
            populateMethod.invoke(this);
        }
    } catch (Exception e) {
    }
}
 
源代码11 项目: KUtils   文件: BGABanner.java
/**
 * 设置自定义页面切换动画
 *
 * @param transformer
 */
public void setPageTransformer(ViewPager.PageTransformer transformer) {
    if (transformer != null && mViewPager != null) {
        mViewPager.setPageTransformer(true, transformer);
    }
}
 
源代码12 项目: Pasta-Music   文件: IntroActivity.java
@Override
public ViewPager.PageTransformer getPageTransformer() {
    return TutorialFragment.getParallaxPageTransformer(2.5f);
}
 
源代码13 项目: MagicViewPager   文件: RotateYTransformer.java
public RotateYTransformer( ViewPager.PageTransformer pageTransformer)
{
    this(DEFAULT_MAX_ROTATE, pageTransformer);
}
 
源代码14 项目: MagicViewPager   文件: AlphaPageTransformer.java
public AlphaPageTransformer(ViewPager.PageTransformer pageTransformer)
{
    this(DEFAULT_MIN_ALPHA, pageTransformer);
}
 
源代码15 项目: KUtils-master   文件: BGAViewPager.java
@Override
public void setPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer transformer) {
    /**
     继承ViewPager,重写setPageTransformer方法,移除版本限制,通过反射设置参数和方法

     getDeclaredMethod*()获取的是【类自身】声明的所有方法,包含public、protected和private方法。
     getMethod*()获取的是类的所有共有方法,这就包括自身的所有【public方法】,和从基类继承的、从接口实现的所有【public方法】。

     getDeclaredField获取的是【类自身】声明的所有字段,包含public、protected和private字段。
     getField获取的是类的所有共有字段,这就包括自身的所有【public字段】,和从基类继承的、从接口实现的所有【public字段】。
     */
    Class viewpagerClass = ViewPager.class;

    try {
        boolean hasTransformer = transformer != null;

        Field pageTransformerField = viewpagerClass.getDeclaredField("mPageTransformer");
        pageTransformerField.setAccessible(true);
        PageTransformer mPageTransformer = (PageTransformer) pageTransformerField.get(this);

        boolean needsPopulate = hasTransformer != (mPageTransformer != null);
        pageTransformerField.set(this, transformer);

        Method setChildrenDrawingOrderEnabledCompatMethod = viewpagerClass.getDeclaredMethod("setChildrenDrawingOrderEnabledCompat", boolean.class);
        setChildrenDrawingOrderEnabledCompatMethod.setAccessible(true);
        setChildrenDrawingOrderEnabledCompatMethod.invoke(this, hasTransformer);

        Field drawingOrderField = viewpagerClass.getDeclaredField("mDrawingOrder");
        drawingOrderField.setAccessible(true);
        if (hasTransformer) {
            drawingOrderField.setInt(this, reverseDrawingOrder ? 2 : 1);
        } else {
            drawingOrderField.setInt(this, 0);
        }

        if (needsPopulate) {
            Method populateMethod = viewpagerClass.getDeclaredMethod("populate");
            populateMethod.setAccessible(true);
            populateMethod.invoke(this);
        }
    } catch (Exception e) {
    }
}
 
源代码16 项目: MagicViewPager   文件: ScaleInTransformer.java
public ScaleInTransformer(float minScale, ViewPager.PageTransformer pageTransformer)
{
    mMinScale = minScale;
    mPageTransformer = pageTransformer;
}
 
public ScaleInTransformer(ViewPager.PageTransformer pageTransformer) {
    this(DEFAULT_MIN_SCALE, pageTransformer);
}
 
源代码18 项目: android-material-stepper   文件: StepperLayout.java
/**
 * Overrides the default page transformer used in the underlying {@link com.stepstone.stepper.internal.widget.StepViewPager}.
 * If you're supporting RTL make sure your {@link android.support.v4.view.ViewPager.PageTransformer} accounts for it.
 *
 * @param pageTransformer new page transformer
 * @see com.stepstone.stepper.internal.widget.StepViewPager
 * @see com.stepstone.stepper.internal.widget.pagetransformer.StepPageTransformerFactory
 */
public void setPageTransformer(@Nullable ViewPager.PageTransformer pageTransformer) {
    mPager.setPageTransformer(false, pageTransformer);
}
 
源代码19 项目: GuideDialog   文件: ItHeiMaDialog.java
/**
 * 设置ViewPager切换动画方式
 * @param pageTransformer
 * @return
 */
public ItHeiMaDialog setPageTransformer(ViewPager.PageTransformer pageTransformer) {
    mPageTransformer = pageTransformer;
    return this;
}
 
源代码20 项目: Pasta-Music   文件: TutorialActivity.java
public abstract ViewPager.PageTransformer getPageTransformer();