轮播banner(完美与简单的融合)

以前项目的轮播都是自己写的,虽然也做了封装,但是感觉有点复杂,今天介绍一个简单的轮播框架 banner

使用非常简单:

一、引入项目建立依赖

dependencies {
    compile 'com.youth.banner:banner:1.4.10'
    compile 'com.github.bumptech.glide:glide:3.7.0'
}
我引用了一个加载图片的框架glide

二、清单文件添加相关权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
三、布局文件中添加引入

<com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="200dp" />

四、重写图片加载器ImageLoader,创建一个类集成ImageLoader

public class GlideImageLoader extends ImageLoader {

    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        /**
         注意:
         1.图片加载器由自己选择,这里不限制,只是提供几种使用方法
         2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器,
         传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行
         */

        //我选择了Glide加载图片
        Glide.with(context).load(path).into(imageView);
        
        //Picasso 加载图片
        //Picasso.with(context).load(path).into(imageView);

    }
}

五、获取数据源(访问接口获取或本地文件), 获取图片放到集合List<string> imgs = new ArrayList();

同样获取标题放到集合List<string> titles = new ArrayList(); 没有标题的话不用构造集合

六、代码中(Activity、Fragment)使用

Banner banner = (Banner) findViewById(R.id.banner);
//设置指示器样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//设置指示器位置
banner.setIndicatorGravity(BannerConfig.RIGHT);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(imgs);
//设置标题,没有的话不设置
banner.setBannerTitles(titles);
//每隔3秒滚动一次
banner.setDelayTime(3000);
//banner设置方法全部调用完毕时最后调用
banner.start();
//设置点击监听事件
banner.setOnBannerListener(new OnBannerListener() {
    @Override
    public void OnBannerClick(int position) {
        Toast.makeText(MainActivity.this,"点击了第"+(position+1)+"张图片",Toast.LENGTH_SHORT).show();
    }
});

到此处就完成了一个轮播的功能,流程很清晰


为了增强体验,可以在onStart()和onStop()方法中开始和结束轮播

@Override
protected void onStart() {
    super.onStart();
    //开始轮播
    banner.startAutoPlay();
}

@Override
protected void onStop() {
    super.onStop();
    //结束轮播
    banner.stopAutoPlay();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值