//需要的依赖
//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;
}
}
本文介绍了一个轮播图功能的实现过程,包括定义接口、使用Retrofit进行网络请求、处理响应数据并展示到UI的方法。通过具体代码展示了如何设置图片加载器、配置轮播样式等关键步骤。
1993

被折叠的 条评论
为什么被折叠?



