Skip to content

Eric3023/PointViewPager

Repository files navigation

使用手册

github地址:https://github.com/Eric3023/PointViewPager

1.工程的build.gradle文件中添加依赖

allprojects {
    repositories {  
        maven { url 'https://jitpack.io' }  
    }
}
dependencies {
    compile 'com.github.Eric3023:PointViewPager:2.5.1'   
}

2.控件使用

2.1 LoopViewPager

布局文件中添加LoopViewPager控件:

        <com.dong.pointviewpager.widget.LoopViewPager
            android:id="@+id/loopViewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

java代码中设置控件的属性,根据需要设置部分属性,不用全部设置

        //配置LoopViewPager参数
        LoopViewPager pager = findViewById(R.id.loopViewPager);
        pager.setImageScale(ImageView.ScaleType.FIT_CENTER)//修改视图的填充类型
                .setLoop(false)//设置是否循环(图片数量大于3有效)
                .setAuto(true)//设置是否自动播放
                .setAutoTime(5)//设置图片时间间隔
                .setOnLoopPageChangeListener(ListenerManager.onLoopPageChangeListener)//设置选中监听
                .setOnLoopPagerClickListener(ListenerManager.onLoopPagerClickListener)//设置点击监听
                .setBeans(new DataManager().getUrlBeans())//设置数据源
                .setDefaultResouces(new int[]{R.drawable.img1})//设置默认显示的占位图
                .setCard(true)//设置是否是CardView
                .setCardRadius(getResources().getDimension(R.dimen.x10))//设置CardView的圆角弧度
                .setCardElevation(getResources().getDimension(R.dimen.x5))//设置CardView的阴影宽度
                .setCardPadding((int) getResources().getDimension(R.dimen.x3))//设置CardView的Padding宽度
                .initialise();//参数配置完成后,执行适配(必须执行,且必须最后一步执行)

选中监听(OnLoopPageChangeListener)和点击监听(OnLoopPagerClickListener)

        private OnLoopPageChangeListener onLoopPageChangeListener = new OnLoopPageChangeListener() {
            @Override
            protected void onViewPageSelected(int position) {
                Log.i("Dong", "选中Position:"+position);
            }

            @Override
            protected void onViewPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            protected void onViewPageScrollStateChanged(int state) {

            }
        };

        private OnLoopPagerClickListener onLoopPagerClickListener = new OnLoopPagerClickListener() {
            @Override
            public void onLoopPagerClick(int position, LoopViewPagerBean bean) {
                Log.i("Dong", "点击Position:"+position);
            }
        };

数据源beans是个集合(List),LoopViewPagerBean包含Object object、String url、int resourceID三个参数,Object根据项目自行设定类型,url为图片的url路径,一般由object的getxxx方法获得,也可自行设置,resourceID为图片的资源路径(url和resourceID,优先选择URL作为数据源)

举例说明数据源的初始化:

        //数据源
        List<LoopViewPagerBean> resourceBeans = new ArrayList<LoopViewPagerBean>();
        LoopViewPagerBean resourceBean1 = new LoopViewPagerBean(R.drawable.img0, null);
        LoopViewPagerBean resourceBean2 = new LoopViewPagerBean(R.drawable.img1, null);
        LoopViewPagerBean resourceBean3 = new LoopViewPagerBean(R.drawable.img2, null);
        LoopViewPagerBean resourceBean4 = new LoopViewPagerBean(R.drawable.img0, null);
        resourceBeans.add(resourceBean1);
        resourceBeans.add(resourceBean2);
        resourceBeans.add(resourceBean3);
        resourceBeans.add(resourceBean4);

//数据源发生改变时

        loopViewPager.getAdapter().notifyDataSetChanged();

//页面关闭是调用destoryViewPager():

        @Override
        protected void onDestroy() {
            loopViewPager.destoryViewPager();
            super.onDestroy();
        }

效果:

image

2.2 PonitViewPager

布局文件中添加PointViewPager控件:

        <com.dong.pointviewpager.widget.PointViewPager
            android:id="@+id/pointViewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

java代码中设置控件的属性

        PointViewPager pointViewPager = findViewById(R.id.pointViewPager);

        LoopViewPager loopViewPager = pointViewPager.getLoopViewPager();

        PointView pointView = pointViewPager.getPointView();

        //设置LoopViewPager(轮播图)的属性(方法参考2.1,LoopViewPager的设置)
        initLoopViewPager(loopViewPager);

        //设置PointView(小圆点)的属性
        initPointView(pointView);
        private void initPointView(PointView pointView) {
            pointView.setNfColor(Color.RED)//设置未被选中时小圆点的颜色(默认白色)
                        .setfColor(Color.BLUE)//设置选中时小圆点的演的(默认红色)
                        .setDisbottom(getResources().getDimension(R.dimen.x10))//设置距离控件底部的距离
                        .setDistance(getResources().getDimension(R.dimen.x8))//设置小圆点之间的间隔距离
                        .setRudis(getResources().getDimension(R.dimen.x3))//设置小圆点的半径
                        .setScrollType(PointView.SMOOTH_SCROLL)//设置小圆点的滑动方式(INSTANT_SCROLL或SMOOTH_SCROLL)
                        .initialise();
}

//数据源发生改变时

        loopViewPager.getAdapter().notifyDataSetChanged();

//页面关闭是调用destoryViewPager():

        @Override
        protected void onDestroy() {
            loopViewPager.destoryViewPager();
            super.onDestroy();
        }

效果:

image

2.3 GalleryViewPager

布局文件

        <com.dong.pointviewpager.widget.GalleryViewPager
            android:id="@+id/galleryviewpager"
            android:layout_width="match_parent"
            android:layout_height="@dimen/y120"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent">
        </com.dong.pointviewpager.widget.GalleryViewPager>

代码文件

        GalleryViewPager galleryViewPager = findViewById(R.id.galleryviewpager);
        LoopViewPager loopViewPager = galleryViewPager.getLoopViewPager();

        //设置Gallery中LoopViewPager的参数(方法同上2.1, LoopViewPager参数设置)
        initLoopViewPager(loopViewPager);

        //设置Gallery中其他参数
        initGalleryViewPager(galleryViewPager);
        private void initGalleryViewPager(GalleryViewPager galleryViewPager) {
            galleryViewPager.setPageWidth((int) getResources().getDimension(R.dimen.x240))//设置ViewPager的宽度,适当小于 GalleryViewPager的宽度
                    .setPageHeight((int) (getResources().getDimension(R.dimen.y150)))//设置ViewPager的高度
                    .setPageDistance((int) (getResources().getDimension(R.dimen.x50)))//设置两侧页卡的缩进距离
                    .setPageScale((float) 0.8)//设置两侧隐藏页面的缩放比例
                    .setPageAlpha((float) 0.5)//设置两侧隐藏页面的透明度
                    .setPagerRotation(20)//设置两侧页卡的倾斜角度
                    .initialise();
    }

//数据源发生改变时

        loopViewPager.getAdapter().notifyDataSetChanged();

//页面关闭是调用destoryViewPager():

        @Override
        protected void onDestroy() {
            loopViewPager.destoryViewPager();
            super.onDestroy();
        }

效果:

image

2.4 PointGalleryViewPager

布局文件

        <com.dong.pointviewpager.widget.PointGalleryViewPager
            android:id="@+id/pointGalleryViewPager"
            android:layout_width="match_parent"
            android:layout_height="@dimen/y120"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

代码文件

        //设置PointGallery中LoopViewPager的参数(方法同2.1)
        initLoopViewPager(loopViewPager);
        //设置PointGallery中PoitView的参数(方法同2.2)
        initPointView(pointView);
        //设置PointGallery中其他参数
        initGalleryViewPager(pointGalleryViewPager);
        private void initGalleryViewPager(PointGalleryViewPager galleryViewPager) {
            galleryViewPager.setPageWidth((int) getResources().getDimension(R.dimen.x240))//设置ViewPager的宽度,适当小于GalleryViewPager的宽度
                    .setPageHeight((int) (getResources().getDimension(R.dimen.y150)))//设置ViewPager的高度,原高度/PageCenterScale
                    .setPageDistance((int) (getResources().getDimension(R.dimen.x15))) // 两侧页卡的缩进距离
                    .setPageScale((float) 0.8)//设置两侧隐藏页面的缩放比例
                    .setPageAlpha((float) 0.5)//设置两侧隐藏页面的透明度
                    .setPageRotation(0)
                    .initialise();
        }

//数据源发生改变时

        loopViewPager.initialise();

//页面关闭是调用destoryViewPager():

        @Override
        protected void onDestroy() {
            loopViewPager.destoryViewPager();
            super.onDestroy();
        }

效果:

image

2.5 OverCardViewPager

布局文件中添加OverCardViewPager控件:

        <com.dong.pointviewpager.widget.OverCardViewPager
            android:id="@+id/overCardViewPager"
            android:layout_width="@dimen/x200"
            android:layout_height="@dimen/y200" />

java代码中设置控件的属性,根据需要设置部分属性,不用全部设置

        //配置OverCardViewPager参数
        pager = findViewById(R.id.overCardViewPager);
        pager.setImageScale(ImageView.ScaleType.FIT_CENTER)//修改视图的填充类型
                .setLoop(true)//设置是否循环(图片数量大于3有效)
                .setOnLoopPageChangeListener(ListenerManager.onLoopPageChangeListener)//设置选中监听,替代addOnPageChangeListener
                .setOnLoopPagerClickListener(ListenerManager.onLoopPagerClickListener)//设置点击监听
                .setBeans(new DataManager().getUrlBeans())//设置数据源
                .setDefaultResouces(new int[]{R.drawable.img1})//设置默认显示的占位图
                .setCard(true)//设置是否是CardView
                .setCardRadius(getResources().getDimension(R.dimen.x1))//设置CardView的圆角弧度
                .setCardElevation(getResources().getDimension(R.dimen.x2))//设置CardView的阴影宽度
                .setCardPadding((int) getResources().getDimension(R.dimen.x2))//设置CardView的Padding宽度
                .setmOffset(getResources().getDimension(R.dimen.y5))//设置重叠卡片的下移距离
                .initialise();//参数配置完成后,执行适配(必须执行,且必须最后一步执行)

//数据源发生改变时

        loopViewPager.getAdapter().notifyDataSetChanged();

效果:

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages