RetroFit+RXjava实现轮播图

 

//需要的依赖

//banner轮播图
implementation 'com.youth.banner:banner:1.4.10'

//banner实现轮播图

//接口类
public static final String JD_HOME_LUNBO = "ad/getAd";

//Api

//首页的轮播图
@GET(HttpConfig.JD_HOME_LUNBO)
Observable<HomeBean> home();

//Model层

public Observable<HomeBean> doHome(){
    return RetrofitManager.getDefault().create(IHomeApi.class).home();
}

 

//Presenter层

public void getHome() {
    homeModel.doHome()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<HomeBean>() {
                @Override
                public void onSubscribe(Disposable d) {
                    compositeDisposable.add(d);
                }

                @Override
                public void onNext(HomeBean homeBean) {
                    if (view != null) {
                        view.onSuccess(homeBean);
                    }
                }

                @Override
                public void onError(Throwable e) {
                    if (view != null) {
                        view.onFaild(e.toString());
                    }
                }

                @Override
                public void onComplete() {

                }
            });

}

//View层

//轮播图
void onSuccess(HomeBean homeBean);

void onFaild(String error);

//获取控件

//轮播图
List<String> list = new ArrayList<>();
List<String> list_title = new ArrayList<>();
List<HomeBean.DataBean> data = homeBean.getData();
for (int i = 0; i <data.size() ; i++) {
    String icon = data.get(i).getIcon();
    String title = data.get(i).getTitle();
    list.add(icon);
    list_title.add(title);
}
banner.setImageLoader(new GlideImageloader());
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
banner.setImages(list);
banner.setBannerTitles(list_title);
banner.start();

 

private class GlideImageloader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Uri uri=Uri.parse((String) path);
        imageView.setImageURI(uri);
    }
    @Override
    public ImageView createImageView(Context context) {
        SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
        return simpleDraweeView;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值