BannerView

BannerView

github 源码地址: BannerView

一个基于FrameLayout+ViewPager+FragmentPagerAdapter的轮播图

特点:

  • 广告轮播图,跟FrameLayout一样简单使用
  • 基于ViewPager+FragmentPagerAdapter,滑动流畅
  • 可定制图片加载器
  • 提供一些定制接口


BannerView.gif

如何使用它

gradle

先在 project的build.gradle 添加:
allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }
然后在module的build.gradle 添加:
dependencies {
            compile 'com.github.LinweiJ:BannerView:0.0.1'
    }

JAVA

1.简单使用例子
  • xml
<com.lwj.widget.bannerview.BannerView
        android:id="@+id/BannerView"
        android:layout_width="match_parent"
        android:layout_height="493dp"
        android:layout_weight="1"
        android:background="#cdcdcd"
    >
     <TextView
         android:id="@+id/tv_hint"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="bottom"
         android:text="提示"
     />
</com.lvchehui.www.demo_best_adapter.banner.BannerView>
  • java
        mTv_hint = (TextView) findViewById(R.id.tv_hint);
        mBannerView = (BannerView) findViewById(R.id.BannerView);
        mBannerView.setFragmentManager(getSupportFragmentManager());
        mBannerView.setPictureUrl(mUrlList);
        mBannerView.setCircle(true);
        mBannerView.setDurationFavor(4.0f);
        mBannerView.setInitItem(0);
        mBannerView.setInterpolatorType(BannerInterpolator.ACCELERATE_DECELERATE);
        mBannerView.setPictureLoader(new BannerPictureLoader() {
            @Override
            public void showPicture(Fragment fragment, ImageView pictureView, String pictureUrl) {
                Glide.with(fragment)
                        .load(pictureUrl)
                        .into(pictureView);
            }
        });
        mBannerView.setPictureClickListener(new OnBannerPictureClickListener() {
            @Override
            public void onPictureClick(Fragment fragment, int position, List<String> pictureUrl) {
                ToastUtil.showToast(WBannerActivity.this,"position:"+position+"pictureUrl"+pictureUrl.get(position));
            }
        });
        mBannerView.setOnBannerPageSelectedListener(new OnBannerPageSelectedListener() {
            @Override
            public void onPageSelected(int position, String url) {
                mTv_hint.setText("position"+position+"\n"+url);
            }
        });
        mBannerView.start();

    @Override
    protected void onStart() {
        super.onStart();
        mBannerView.startAutoPlay();
    }

    @Override
    protected void onStop() {
        super.onStop();
        mBannerView.stopAutoPlay();
    }
2.类/方法
  • BannerView
方法描述备注 (是否设置)
setPictureUrl(ArrayList pictureUrl)图片列表必须
setFragmentManager(FragmentManager fm)v4.app.FragmentManager必须
setCircle(boolean isCircle)是否轮播可选
setDurationFavor(float durationFavor)滑动动画时长因子,默认1.0F,值越大时间越长可选
setInterpolatorType(int type)滑动动画变化速度类型,见BannerInterpolator[1]可选
setInitItem(int position )初始页,默认0可选
initPictureLoader(BannerPictureLoader loader)初始化图片加载器(只初始化一次),见BannerPictureLoader[2]与setPictureLoader,必须二选一
setPictureLoader(BannerPictureLoader loader)设置图片加载器,见BannerPictureLoader[2]与initPictureLoader ,必须二选一
setPictureClickListener(OnBannerPictureClickListener listener)设置图片点击事件,见OnBannerPictureClickListener[3]可选
addOnPageChangeListener(ViewPager.OnPageChangeListener listener)ViewPager 滑动监听事件可选
setOnBannerPageSelectedListener(OnBannerPageSelectedListener listener)ViewPager 页面选中事件,见OnBannerPageSelectedListener[4]可选
start()配置完成后调用必须
startAutoPlay()设置setCircle(ture)有效,通常在start()调用,开始轮播,可选
stopAutoPlay()设置setCircle(ture)有效,通常在stop()调用,停止轮播可选
getViewPager()获取ViewPager可选

- BannerInterpolator[1]

常量描述
LINEAR直线
ACCELERATE在动画开始的地方速率改变比较慢,然后开始加速
DECELERATE在动画开始的地方快然后慢
ACCELERATE_DECELERATE在动画开始与介绍的地方速率改变比较慢,在中间的时候加速

- BannerPictureLoader[2]

方法描述备注
showPicture(Fragment fragment, ImageView pictureView, String pictureUrl)自定义图片加载方式可选Glide等图片加载库

- OnBannerPictureClickListener[3]

方法描述备注
onPictureClick(Fragment fragment, int position, List pictureUrl)BannerView图片点击事件,参数pictureUrl:图片列表,position:当前点击图片index

- OnBannerPageSelectedListener[4]

方法描述备注
onPageSelected(int position,String url)BannerView滑动切换事件当设置轮播时,viewPager的OnPageChangeListener不再适用

更多细节

可以参考 demo/ 示例

源码地址

github
BannerView

底部

随手给颗星呗 ? (>_@)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值