BannerLayoutSimple 支持图片无限轮播的 BannerLayout,支持自定义小圆点位置以及显示位置等等,反正支持的挺多的,源码也有注释

BannerLayoutSimple

项目地址: 7449/BannerLayoutSimple
简介:支持图片无限轮播的 BannerLayout,支持自定义小圆点位置以及显示位置等等,反正支持的挺多的,源码也有注释

支持图片无限轮播的控件

支持功能

  • 支持网络本地加载数据

  • 可自定义小圆点状态,左 中 右

  • 可自定义 title 状态,左 中 右

  • 可自定义提示栏状态,上 中 下

  • 可自定义小圆点

  • 可自定义是否自动轮播

  • 支持 List 、数组 两种数据格式

  • 支持点击事件

  • 支持设置轮播速度

  • 支持是否显示小圆点,title,或者整个提示栏

  • 支持加载时和加载失败时图片显示状态

  • 支持选择暂停 恢复 轮播状态

使用效果

更新状态

0.0.2 修改部分代码,加载图片可选择自定义加载框架或者使用默认的 Glide

0.0.1:提交项目

基础使用方法

项目中引用

    compile 'com.ydevelop:bannerlayout:0.0.2'

如果是网络加载图片 记得添加

<uses-permission android:name="android.permission.INTERNET" />

1.数组方式

    BannerLayout bannerLayout = (BannerLayout) findViewById(R.id.bannerLayout);
    int[] mImage = new int[]{R.drawable.banner1, R.drawable.banner2, R.drawable.banner3};
    String[] mTitle = new String[]{"bannerl", "banner2", "banner3"};
    bannerLayout
            .initImageArrayResources(mImage, mTitle)
            .initAdapter()
            .initRound(true, true, true)
            .start(true);

2.List 集合

    BannerLayout bannerLayout = (BannerLayout) findViewById(R.id.bannerLayout);
    List<BannerModel> mDatas = new ArrayList<>();
    mDatas.add(new BannerModel("http://ww2.sinaimg.cn/bmiddle/0060lm7Tgw1f94c6kxwh0j30dw099ta3.jpg", "那个时候刚恋爱,这个时候放分手"));
    mDatas.add(new BannerModel("http://ww4.sinaimg.cn/bmiddle/0060lm7Tgw1f94c6qyhzgj30dw07t75g.jpg", "羞羞呢~"));
    mDatas.add(new BannerModel("http://ww1.sinaimg.cn/bmiddle/0060lm7Tgw1f94c6f7f26j30dw0ii76k.jpg", "腿不长 但细"));
    mDatas.add(new BannerModel("http://ww4.sinaimg.cn/bmiddle/0060lm7Tgw1f94c63dfjxj30dw0hjjtn.jpg", "深夜了"));
    bannerLayout
            .initImageListResources(mDatas)
            .initAdapter()
            .initRound()
            .start(true);    

3.点击事件,也可以自己单独写

    bannerLayout
            .initImageArrayResources(mImage, mTitle)
            .initAdapter()
            .initRound()
            .start(true)
            .setOnBannerClickListener(new BannerLayout.OnBannerClickListener() {
                @Override
                public void onBannerClick(int position) {

                }
            });

4.提示栏及小圆点、title 位置的改变

想要改变位置在 initRound()方法中实现几种不同的状态,不需要的可以直接传 null 有默认的参数

代码中提供了三个枚举

- BANNER_ROUND_CONTAINER_POSITION      提示栏在布局中的位置,TOP,BUTTOM,CENTERED 三种可选 
- BANNER_ROUND_POSITION      小圆点在提示栏的位置,LEFT,CENTERED,RIGHT 三种可选 
- BANNER_TITLE_POSITION      title 在提示栏的位置,LEFT,CENTERED,RIGHT 三种可选 

5.使用自定义加载图片框架

默认使用 Glide 加载图片,如果不喜欢的继承 ImageLoaderManage 然后在代码中 setImageLoaderManage.

 bannerLayout
            .initImageListResources(mBanner)
            .setImageLoaderManage(new ImageLoader()) //自己定义加载图片的方式
            .initAdapter()
            .initRound(true, true, false)
            .start(true);

Glide 默认就算是本地的资源文件也可以加载,但是 Picasso 加载时不行,如果使用 Picasso 加载图片请把 url 强转成 int 类型,其他的没有试过。

public class ImageLoader implements ImageLoaderManage {
    @Override
    public void display(Context context, ImageView imageView, Object url) {
        Picasso.with(context).load((Integer) url).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(imageView);
    }
}

最后调用 start()的时候可以决定是否开启自动轮播,不管在 fragment 还是 activity 里面,应该在合适的生命周期里选择暂停或者恢复轮播(如果开启了自动轮播),BannerLayout 已经提供了方法,使用者直接调用就可以了,如果使用 List 数据,请使用 BannerModel

自定义参数详解

属性名说明属性值
delay_time轮播时间默认 2s
start_rotation是否开启自动轮播true 开启,默认不开启
view_pager_touch_modeviewpager 是否可以手动滑动true 禁止滑动,false 可以滑动,默认可以滑动
round_selector小圆点状态选择器可参考自带的
round_container_background_switch是否显示提示控件的背景true 显示,默认不显示
round_left_margin小圆点的 marginLeft默认 10
round_right_margin小圆点的 marginRight默认 10
title_left_margintitle marginLeft默认 10
title_right_margintitle marginRight默认 10
round_width小圆点 width默认 15
round_height小圆点 height默认 15
round_container_backgroundBannerRound 背景色默认半透明色
round_container_widthBannerRound 宽度填充屏幕
round_container_heightBannerRound 高度默认 50
glide_error_imageglide 加载错误占位符默认 android 自带图标
glide_place_imageglide 加载中占位符默认 android 自带图标
banner_round_visible是否显示小圆点默认显示
banner_title_visible是否显示 title默认不显示
banner_title_size字体大小默认 12
banner_title_color字体颜色默认黄色

最后

BannerLayout 这个类里面的注释我感觉已经很详细了,如果上面的设置有不懂得可以看 BannerLayout。 我一个人肯定测不出来所有 bug,所以现在我也不知道哪里还有问题,基本的使用暂时没发现问题。 如果有人在使用的过程中出现未知或者莫名其妙的 bug,欢迎提 lssues, 至于图片加载我直接是内置了 Glide 来加载图片。不管本地或者网络的图片都可以,但是要记得添加网络权限

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值