BannerViewPager轮播图 + okGo赋值

1.依赖

allprojects {
    repositories {
        google()
        jcenter()
        //BannerViewPage
        maven { url 'https://jitpack.io' }
    }
}
//BannerViewPager
implementation 'com.github.zhpanvip:bannerviewpager:3.5.4'
//OkGo网络框架
implementation 'com.lzy.net:okgo:3.0.4'
implementation 'com.lzy.net:okserver:2.0.5'
//Gson
implementation 'com.google.code.gson:gson:2.8.2'
//Glide
implementation 'com.github.bumptech.glide:glide:4.9.0'

 2.XML

<com.zhpan.bannerview.BannerViewPager
         android:id="@+id/bannView"
         android:layout_margin="20dp"
         android:layout_width="wrap_content"
         android:layout_height="300dp"/>

3.Activity类

OkGo.<String>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1")
                .execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                        String body = response.body();
                        Gson gson = new Gson();
                        JavaBan javaBan = gson.fromJson(body, JavaBan.class);

                        bannView.setPageStyle(PageStyle.MULTI_PAGE)  //轮播图的样式
                                .setIndicatorGravity(IndicatorGravity.CENTER)   //指示器的位置
                                .setRevealWidth(BannerUtils.dp2px(10)) //图片宽度
                                .setIndicatorHeight(BannerUtils.dp2px(5))  //指示器的高度
                                .setPageMargin(BannerUtils.dp2px(10))  //图片与图片左右的边距
                                .setIndicatorStyle(IndicatorStyle.ROUND_RECT)    //指示器的样式
                                .setIndicatorSliderColor(Color.BLACK,Color.RED)  //选中的颜色 + 未选中的颜色
                                .setIndicatorMargin(0,0,0,0) //页面的外边距
                                            //适配器                 实体类集合
                                .setAdapter(new AdapTer()).create(javaBan.getData());    //添加适配器 + 添加数据
                    }
                });

 4.适配器

public class AdapTer extends BaseBannerAdapter<JavaBan.DataDTO> {
    @Override
    protected void bindData(BaseViewHolder<JavaBan.DataDTO> holder, JavaBan.DataDTO data, int position, int pageSize) {
        Glide.with(Utils.getApp()).load(data.getPic()).into((ImageView) holder.findViewById(R.id.img));
        //赋图片                                                                 子布局的ImageView的(id)
    }

    @Override
    public int getLayoutId(int viewType) {
        return R.layout.duo;   //调用子布局
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
现在的APP Banner大多数千篇一律,前几天看到魅族手机上所有魅族自家APP上的Banner效果不错,于是就想着来仿着做一个类似的效果。因此就有了这个库。但是为了使用方便,这个库不仅仅只有仿魅族效果的BannerView 来使用,还可以当作普通的BannerView 来使用,还可以当作一个ViewPager 来使用。使用很方便,具体使用方法和API 请看后面的示例。 ---  左为魅族APP上的Banner效果,右是高仿效果。MZBannerView 有以下功能:1 . 仿魅族BannerView 效果。2 . 当普通Banner 使用3 . 当普通ViewPager 使用。4 . 当普通ViewPager使用(有魅族Banner效果)5 . 仿某视频网站Banner效果。Demo APKgif片有点模糊,可以扫描下方二维码下载APK体验相关博客ViewPager系列之 仿魅族应用的广告BannerView更新日志v1.1.1 : 增加按住Banner 停止轮,松开开始自动轮的功能v1.1.0 : fix 在从网上获取数据后,banner 显示 造成 ANR 的bug(如果在onCreate()中设置资源显示则没问题)v1.1.2 : fix 更改数据之后,调用setPages重新刷新数据会crush的bugv2.0.0 :1,add: 添加仿魅族Banner效果,中间Page覆盖两边。 -- 2,fix 部分bug: 添加OnPageChangeListener 回调 pisition 不对的bug.DependencyAdd it in your root build.gradle at the end of repositories:allprojects {      repositories {           ...           maven { url 'https://jitpack.io' }      } }Step 2. Add the dependencydependencies {          compile 'com.github.pinguo-zhouwei:MZBannerView:v2.0.0' }自定义属性属性名属性意义取值open_mz_mode是否开启魅族模式true 为魅族Banner效果,false 则普通Banner效果canLoop是否轮true 轮,false 则为普通ViewPagerindicatorPaddingLeft设置指示器距离左侧的距离单位为 dp 的值indicatorPaddingRight设置指示器距离右侧的距离单位为 dp 的值indicatorAlign设置指示器的位置有三个取值:left 左边,center 剧中显示,right 右侧显示middle_page_cover设置中间Page是否覆盖(真正的魅族Banner效果)true 覆盖,false 无覆盖效果使用方法1 . xml 布局文件2 . activity中代码:mMZBanner = (MZBannerView) view.findViewById(R.id.banner);              // 设置数据         mMZBanner.setPages(list, new MZHolderCreator() {             @Override             public BannerViewHolder createViewHolder() {                 return new BannerViewHolder();             }         });  public static class BannerViewHolder implements MZViewHolder {         private ImageView mImageView;         @Override         public View createView(Context cont
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值