PointViewPager

使用手册

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

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

allprojects {repositories {  maven { url 'https://jitpack.io' }  }
}dependencies {compile 'com.github.Eric3023:PointViewPager:v2.4.0'
}
复制代码

2.控件使用

2.1 LoopViewPager

布局文件中添加LoopViewPager控件:

<com.dong.pointviewpager.widget.LoopViewPagerandroid:id="@+id/loopViewPager"android:layout_width="match_parent"android:layout_height="match_parent"/>
复制代码

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

//配置LoopViewPager参数LoopViewPager pager = findViewById(R.id.loopViewPager);pager.setImageScale(LoopViewPager.CENTER_INSIDE)//修改视图的填充类型.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() {@Overrideprotected void onViewPageSelected(int position) {Log.i("Dong", "选中Position:"+position);}@Overrideprotected void onViewPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overrideprotected void onViewPageScrollStateChanged(int state) {}};private OnLoopPagerClickListener onLoopPagerClickListener = new OnLoopPagerClickListener() {@Overridepublic 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();
}
复制代码
效果:

2.2 PonitViewPager

布局文件中添加PointViewPager控件:

<com.dong.pointviewpager.widget.PointViewPagerandroid: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();
}
复制代码
效果:

2.3 GalleryViewPager

布局文件

<com.dong.pointviewpager.widget.GalleryViewPagerandroid: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.x280))//设置ViewPager的宽度,适当小于GalleryViewPager的宽度.setPageHeight(RelativeLayout.LayoutParams.MATCH_PARENT)//设置ViewPager的高度.setPageScale((float) 0.8)//设置两侧隐藏页面的缩放比例.setPageAlpha((float) 0.5)//设置两侧隐藏页面的透明度.initialise();}
复制代码

//数据源发生改变时

loopViewPager.getAdapter().notifyDataSetChanged();
复制代码

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

@Override
protected void onDestroy() {loopViewPager.destoryViewPager();super.onDestroy();
}
复制代码

效果:

2.4 PointGalleryViewPager

布局文件

<com.dong.pointviewpager.widget.PointGalleryViewPagerandroid: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.x280))//设置ViewPager的宽度,适当小于GalleryViewPager的宽度.setPageHeight(RelativeLayout.LayoutParams.MATCH_PARENT)//设置ViewPager的高度.setPageScale((float) 0.8)//设置两侧隐藏页面的缩放比例.setPageAlpha((float) 0.5)//设置两侧隐藏页面的透明度.initialise();}
复制代码

//数据源发生改变时

loopViewPager.initialise();
复制代码

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

@Override
protected void onDestroy() {loopViewPager.destoryViewPager();super.onDestroy();
}
复制代码

效果:

转载于:https://juejin.im/post/5aab97faf265da239376d53e

自定义PointViewPager依赖库相关推荐

  1. Android神技之 使用SVG以及自定义IconFont字体库

    Android神技之 使用SVG以及自定义IconFont字体库 简介 Google在Android 5.X中增加了对SVG矢量图形的支持. SVG是什么 SVG 指可伸缩矢量图形 (Scalable ...

  2. 一丶宝塔+青龙面板安装部署教程及命令-依赖库

    一丶宝塔+青龙面板安装部署教程及命令-依赖库 QQ交流群:1014549449 直达 - 没有服务器的先自行购买,这里推荐腾讯云2H4G首年70 点击购买 建议装centos7.6安装宝塔,后期调试及 ...

  3. 此项目与visual studio的当前版本不兼容_忘掉GOPATH,迎接Go modules,进入Go项目依赖库版本管理新时代...

    Go SDK 1.13测试版已经发布了.从此版本开始,Go modules依赖库版本管理特性将正式开始推荐使用.本文将解释一些和Go modules相关的一些命令和概念. Module(模块)定义为一 ...

  4. 【MSDN文摘】使用自定义验证组件库扩展 Windows 窗体: Form Scope

    使用自定义验证组件库扩展 Windows 窗体,第 2 部分(Windows 窗体探索) 发布日期: 5/28/2004 | 更新日期: 5/28/2004 Michael Weinhardt www ...

  5. 使用Docker运行java项目需要注意的glibc依赖库问题

    使用Docker运行java项目需要注意的glibc依赖库问题 转载自:https://blog.51cto.com/u_15329153/3758717 docker官方推荐java是基于glibc ...

  6. jitpack第三方依赖库使用

    前言 通常我们使用GitHub管理我们的代码,当我们需要查阅或使用代码时,可以把代码clone下来,但是这种方法步骤比较复杂.繁琐:如果可以像Android的原生库一样在build.gradle里面添 ...

  7. configure 查找依赖库_由浅入深:Python 中如何实现自动导入缺失的库?

    在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx' 或者 ModuleNotFoundError: No mod ...

  8. 2017年Android开源项目及依赖库

    目录(?)[+] github排名: https://github.com/trending , github搜索: https://github.com/search UI Awesome-Mate ...

  9. C++自定义静态链接库

    目录 创建静态链接库项目 创建项目 ​ 创建函数 设置项目生成文件 生成lib 创建使用静态链接库项目 新建项目 设置库目录 链接静态库 声明需要使用的函数 使用extern 使用 头文件方式(推荐使 ...

最新文章

  1. java 谈设计模式之简单工厂
  2. linux 怎么完全卸载mysql数据库
  3. 接上文 VM安装的ubuntu系统,配置双网卡
  4. java web 定制化界面_实现javaWeb网页自定义出错界面
  5. 用字典存储学生成绩查询_中考用分数评价学生音体美成绩未尝不是好事
  6. android标签打印,Android TSC热敏标签打印机打印
  7. nc的java插件_如何配置协同平台NC系统插件 原来是这样的
  8. 人行征信报告(上)——一代征信报告的变量梳理
  9. 自学结构体(小甲鱼c语言)
  10. opencv毛孔识别(python实现)
  11. html 向左箭头图标css,使用css实现箭头图标
  12. iOS上应用如何兼容32位系统和64位系统
  13. 2021上半年程序员新书大盘点
  14. Duplicate method name “$$$getFont$$$“ with signature “(Ljava.lang.String;IILjava.awt.Font;)Ljava.awt
  15. 国家一级计算机等级考试 阴影效果的预设值为内部右上角,全国计算机等级考试一级练习题(1)解析...
  16. 深度学习如何解决计算机视觉的经典图像分类问题
  17. 天龙八部网单服务器修改物品,如何用金山游侠V修改单机版天龙八部里面的物品啊?...
  18. Github报错: Support for password authentication was removed on August 13, 2021 问题解决
  19. HDU 6034 Balala Power!
  20. PayPal PHP接口 paypal在线支付

热门文章

  1. 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
  2. Python核心资料:Django+Scrapy+Hadoop+数据挖掘+机器学习+精选视频(免费领)
  3. 程序员饭碗不保了?GPT-3 最强应用发布,动动手指就自动写代码的神器来了!...
  4. 区块链100讲:智能合约审计指南
  5. 项目三(2)——抽象类
  6. 手把手搭建企业IT实战环境第三季:快速搭建SCCM1902服务器
  7. 2018网站信息系统安全等级保护限期整改通知书的处理解决方案
  8. 哈啰顺风车成立5亿元“顺风绿色出行基金”
  9. springboot 使用 redis 管理session
  10. 7.3 rpm工具用法