项目作者: jack921

项目描述 :
一个支持View,图片轮播的Banner
高级语言: Java
项目地址: git://github.com/jack921/LoopViewPagers.git
创建时间: 2018-09-06T08:30:07Z
项目社区:https://github.com/jack921/LoopViewPagers

开源协议:

下载


LoopViewPager

添加引用

  1. //项目根目录 gradle
  2. allprojects {
  3. repositories {
  4. ...
  5. maven { url 'https://jitpack.io' }
  6. }
  7. }
  8. //app目录 gradle
  9. dependencies {
  10. implementation 'com.github.jack921:LoopViewPagers:1.2'
  11. }

属性

属性 解释
loop_now_indicator_img 指示器当前点的图片
loop_indicator_img 指示器未选点的图片
loop_gravity 指示器的位置(center:中间,left:左边,right:右边)

API说明

api 解释
startBanner() 开始轮播
startBanner(long delayTime) 开始轮播同时设置滚动的时间间隔
setAnimation() 切换过度动画
getViewPager 得到原生的ViewPage
setData(Context context, List mData, CreateView mCreatView) 为LoopViewPager的View轮播设值, CreateView为View创建,刷新,删除的接口
setData(final Context context, List mData,final UpdateImage updateImage) 为LoopViewPager的简单图片轮播设值,UpdateImage返回ImageView和对应数据以便你用图片加载框架加载
setOnPageChangeListener() 设置viewpager滑动监听
setOnPageClickListener() 点击每个banner的监听
setIndicatorType() 设置指示器的类型,有IndicatorView()和IndicatiorCanvasView
setDelayTime() 设置滚动的时间间隔
showIndicator(boolean show) 是否显示指示器
setIndicatorGravity() 设置指示器的位置(IndicatorGravity.CENTER,IndicatorGravity.LEFT,IndicatorGravity.RIGHT)
setIndicatorAnimator() 当是IndicatorView指示器时,返回选择点的View,以便你那这个View进行各种动画操作

注:setData()方法最好放在最后面执行


View无限轮播demo

  1. List<String> data=new ArrayList<>();
  2. final LayoutInflater layoutInflater=LayoutInflater.from(this);
  3. data.add("View1");data.add("View2");
  4. data.add("View3"); data.add("View4");
  5. data.add("View5"); data.add("View6");
  6. viewPager.setData(this, data, new CreateView() {
  7. @Override
  8. public View createView(int position) {
  9. return layoutInflater.inflate(R.layout.layout_view,null);
  10. }
  11. @Override
  12. public void updateView(View view,int position, Object item) {
  13. ((TextView)view.findViewById(R.id.view_name)).setText((String)item);
  14. }
  15. @Override
  16. public void deleteView(int position){
  17. //View销毁后的逻辑处理
  18. }
  19. });
效果图:

view.gif


懒人加载数据demo

  1. List<Integer> data=new ArrayList<>();
  2. data.add(R.mipmap.ic_banner1);
  3. data.add(R.mipmap.ic_banner2);
  4. data.add(R.mipmap.ic_banner3);
  5. viewPager.setData(this, data, new UpdateImage<Integer>() {
  6. @Override
  7. public void loadImage(ImageView view, int position, Integer item) {
  8. view.setScaleType(ImageView.ScaleType.FIT_XY);
  9. //加载图片,如gide
  10. Glide.with(MainActivity.this).load(item).into(view);
  11. }
  12. });
效果图:

image.gif