Android的轮播图BannerView源码

时间:2017-09-19 23:02 来源:互联网 作者:源码搜藏收藏

  • 源码类别:图片ImageView
  • 源码大小:未知
  • 编码格式:gbk,utf8,不限
  • 运行环境:Android studio
  • 广告推荐

#BannerView image ##BannerView是什么? 一个可以轮播图可以控制它的

  • 滑动时间和展示时间
  • 指示器颜色,大小,位置
  • 可以自定义加载图片的工具
  • 手势处理,按下停止滑动,抬起继续滑动

#使用方式 引入依赖 打开 Project root 的 build.gradle,在 repositories 节点添加上 maven { url "https://jitpack.io" }

    allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

打开 app build.gradle,引入

    compile 'com.github.LongMaoC:BannerView:v1.0'
}

先写xml(自定义的属性可写可不写)

    xmlns:app="http://schemas.android.com/apk/res-auto"

    <com.cxy.library.view.BannerView
    android:id="@+id/id_bannerView"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    app:indicator_border_distance="16dp"    指示器的边界距离,当indicator_positions的值不为center时使用
    app:indicator_bottom_distance="2dp"     指示器的底界距离
    app:indicator_color_no_select="#478BAD" 指示器未选中时候的颜色
    app:indicator_color_select="#57B5E1"    指示器选中时的颜色
    app:indicator_radii="8dp"               指示器的半径
    app:indicator_positions="right"         指示器的位置(值:left、center、right)
    app:loop_time="2000"                    图片循环时间
    app:scroll_time="2000"                  banner的滚动时间
    />
        

获取数据转成实体类,添加进集合

        List<BannerEntity> entities = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            BannerEntity entity = new BannerEntity();
            entity.setUrl("
                http://f.hiphotos.baidu.com/image/h%3D360/sign=0ec20d71f01fbe09035ec5125b600c30/00e93901213fb80e0ee553d034d12f2eb9389484.jpg
            ");
            entities.add(entity);
        }

和listview类似,需要些个适配器

     class LoopPhotoAdapter implements IBannerBaseAdapter {
        Context context;
        List<BannerEntity> data;

        public LoopPhotoAdapter(Context context, List<BannerEntity> entities) {//构造方法
            this.context = context;
            data= entities;
        }
        @Override
        public void loadImage(String url,ImageView imageView) {//加载图片
            Picasso.with(context).load(url).into(imageView);
        }
        @Override
        public int setItemCount() {//数据个数
            return data.size();
        }
        @Override
        public List<BannerEntity> setData() {//设置数据
            return data;
        }
        @Override
        public void onItemClick(int position) {//点击事件
            Toast.makeText(context, "position = " + position, Toast.LENGTH_SHORT).show();
        }
    }

设置适配器

    BannerView bannerView = (BannerView) findViewById(R.id.id_bannerView);
    bannerView.setAdapter(new LoopPhotoAdapter(context, entities));

##有问题反馈 在使用中有任何问题、意见或建议,欢迎反馈给我,可以用以下联系方式跟我交流

  • 邮件(chenxingyu1112@gmail.com)
  • QQ: 1209101049
本站资源仅限于学习研究,严禁从事商业或者非法活动! 源码搜藏网所有源码来自互联网转载与用户上传分享,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

图片ImageView下载排行

最新文章