android自定义 图片轮播组件

说明: 图片轮播主类

MyBannerCirclePlayerDemo项目git地址

作者: 张武
日期: 2016/9/2.
email: jeff_zw@qq.com

实现原理:

  • 通过将adapter的count设置为极大值,实现同方向无穷轮播
  • 通过Timer,在每一页图片显示的时候,设置一个延时跳到下一页的操作
  • 通过ImageViewLoader加载图片

优点:

  • 最后一张图片到第一张图片过渡自然
  • 每一张图片都会显示指定延迟时间,不会因为人为滑动导致的跳页和时间错乱
  • 通过ImageViewLoader加载图片可实现图片缓存,不会出现过多图片造成oor
  • 通过传入url的数量动态决定轮播图的数量
  • 可设置轮播图显示时间(默认值3秒)

用例:

1)布局文件:

    <com.jeff.mybannercircledemo.BannerCirlePlayer
       android:id="@+id/banner_circle_piayer"
       android:layout_width="match_parent"
       android:layout_height="150dp">
    </com.jeff.mybannercircledemo.BannerCirlePlayer>

2)初始化:

        play = (BannerCirlePlayer) findViewById(R.id.banner_circle_piayer);
        final List<String> urlList = new ArrayList<>();
        urlList.add("url.jpg");
        urlList.add("url.jpg");
        List<View.OnClickListener> lis = new ArrayList<>();
        lis.add(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              //点击事件
            }
        });
        lis.add(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
             //点击事件
            }
        });
        //初始化ImageLoader,可以不设置 使用默认
        play.setmImageLoader(new MyImageLoader(MainActivity.this));
        //设置内容数据 (图片地址、图片点击事件、是否自动轮播)
        play.setData(urlList,lis,true);

效果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、简介 基于ViewPager的用户指引,广告图片Gallery,及自动轮播图片Gallery,使用起来超简单! GitHub地址:https://github.com/panxw/android-image-indicator 二、使用示例 1、广告图片Gallery <com.allthelucky.common.view.ImageIndicatorView android:id="@ id/indicate_view" android:layout_width="match_parent" android:layout_height="160dp" /> 代码: imageIndicatorView = (ImageIndicatorView) findViewById(R.id.indicate_view); final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; imageIndicatorView.setupLayoutByDrawable(resArray); imageIndicatorView.show(); 2、自动轮播模式 <com.allthelucky.common.view.AutoImageIndicatorView android:id="@ id/auto_indicate_view" android:layout_width="match_parent" android:layout_height="160dp" /> 代码: autoImageIndicatorView = (AutoImageIndicatorView) findViewById(R.id.auto_indicate_view); final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; autoImageIndicatorView.setBroadcastEnable(true); autoImageIndicatorView.setBroadCastTimes(5);//循环播放5次 autoImageIndicatorView.setBroadcastTimeIntevel(2 * 1000, 3 * 1000);//播放启动时间及间隔 autoImageIndicatorView.setupLayoutByDrawable(resArray);//图片 autoImageIndicatorView.show(); 效果图: 3、用户指引模式 this.imageIndicatorView = (ImageIndicatorView) findViewById(R.id.guide_indicate_view); final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; imageIndicatorView.setupLayoutByDrawable(resArray); imageIndicatorView.setIndicateStyle(ImageIndicatorView.INDICATE_USERGUIDE_STYLE); imageIndicatorView.show(); 效果图: PS: 顺便宣传下自己的GitHub,https://github.com/panxw, 欢迎来Follow~ 标签:android

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值