java ViewPager实现Gallery效果。主要依靠设置clipChildren属性和ViewPager.Transformer接口实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ViewPager实现Gallery效果。主要依靠设置clipChildren属性和ViewPager.Transformer接口实现相关的知识,希望对你有一定的参考价值。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clipChildren="false">

    <ViewPager
        android:id="@+id/viewPager"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:clipChildren="false"/>

</FrameLayout>
import android.os.Build;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.view.View;

public class ScaleInTransformer implements ViewPager.PageTransformer {

    @Override
    public void transformPage(View view, float position) {
        float scale = 0.5f;
        float scaleValue = Math.abs(Math.abs(position) - 1) * scale + scale;
        scaleValue = position < -1 || position > 1 ? scale : scaleValue;
        view.setScaleX(scaleValue);
        view.setScaleY(scaleValue);
        view.setAlpha(scaleValue);

        /**
         * position = -1: PivotX 为 width
         * position =  0: PivotX 为 width / 2
         * position =  1: PivotX 为 0
         * 以此为基准做调整
         */
        final float offset = Build.VERSION.SDK_INT > 19 ? (Math.abs(position) / position) * 0.5f : 0f;
        view.setPivotX(view.getWidth() * (1 - position - offset) * scale);
        ViewCompat.setElevation(view, position >= -0.25 && position <= 0.25 ? 1 : 0);
    }
}

以上是关于java ViewPager实现Gallery效果。主要依靠设置clipChildren属性和ViewPager.Transformer接口实现的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager 实现 Galler 效果, 显示中间大图显示,两边小图展示

android实现点击按钮,图片在里面滚动的效果??

android 卡片画廊效果及RecycleView、ViewPager、ScrollView之前的冲突解决

android画廊怎样做出超炫效果

android画廊怎样做出超炫效果

仿百度壁纸client——完结篇之Gallery画廊实现壁纸预览已经项目细节优化