//需要的依赖
//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; } }