Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)
2017-12-12 10:51
435 查看
一言不合就上图
banner是第三方集成好的直接注入依赖就可以用
老套路先注入依赖:
//banner这个版本才是王道(我的studio是2.3.3) compile 'com.youth.banner:banner:1.4.9'
这是配合使用的依赖(用不用看个人喜好和习惯):
//http3 compile 'com.squareup.okhttp3:okhttp:3.9.0' //图片Glide compile 'com.github.bumptech.glide:glide:3.7.0' //Gson compile 'com.google.code.gson:gson:2.8.1'
然后布局:
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="300dp"></com.youth.banner.Banner>
别忘记加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
然后是图片加载:
可以用Glide,Fresco,picasso(毕加索),imageLoader等… …
我用的是Glid(没别的意思就是用习惯了glid而已)
Glide需要创建类继承imageLoader
//初始化Glic依赖包的类 public class GlidApplication extends ImageLoader { //继承ImageLoader生成displayImage方法 @Override public void displayImage(Context context, Object path, ImageView imageView) { //初始化Glide包 Glide.with(context).load(path).into(imageView); } }
然后是代码实现banner
//初始化控件 banner = (Banner) findViewById(R.id.banner); //ok网络请求 OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url("http://api.tianapi.com/meinv/?key=2a0024d1f7f558e09936f697580f1643&num=5") .build(); Call call = okHttpClient.newCall(request); //用OkHttp里面的Call对象打点调用 异步请求数据的抽象方法 call.enqueue(new Callback() { //建个集合用来存放图片url的地址 private List<String> picUrlList; //此集合是bean解析过来的集合 private List<LadyBean.NewslistBean> list; @Override public void onFailure(Call call, IOException e) { //访问网络失败的方法(自动生成的) } //访问网络成功的方法(自动生成的) @Override public void onResponse(Call call, Response response) throws IOException { //把数据流转换成json字符串 String json = response.body().string(); a854 Log.e("++++++++","这是访问到的数据:"+json); //开始用gson解析 Gson gson = new Gson(); LadyBean ladyBean = gson.fromJson(json, LadyBean.class); //拿到bean类里的集合 list = ladyBean.getNewslist(); Log.e("++++++++","这是bean集合里的数据:"+list); //设全局此集合专门用来存放图片url地址的 picUrlList = new ArrayList<String>(); for (int i = 0; i < list.size(); i++) { //循环把图片地址添加到string泛型的集合里 picUrlList.add(list.get(i).getPicUrl()); } Log.e("++++++++","这是专门存放图片url集合里的数据:"+picUrlList); //子线程不能更新住UI //所以 【必须】 开启返回主线程的方法 runOnUiThread(new Runnable() { @Override public void run() { //把更新主UI视图的代码放这里面 //.setImagees(把图片地址集合) //.setImageLoader(new你的Glid类) //.start开始装逼吧 banner.setImages(picUrlList).setImageLoader(new GlidApplication()).start(); } }); } });
这就OK了。
强调1点:
1我的Android studio是2.3.3版本,SDK用的v7…..26.+的
相关文章推荐
- [置顶] Android图片轮播控件ConvenientBanner的简单使用
- 推荐Android中两个很好用的banner,可无限轮播,可使用第三方图片加载框架加载网络图
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- 推荐Android中两个很好用的banner,可无限轮播,可使用第三方图片加载框架加载网络图
- [置顶] Android图片轮播控件ConvenientBanner的简单使用
- 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
- 广告栏(自动轮播,无限循环)-图片轮播控件Banner的简单使用总结
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- Android convinientbanner顶部广告轮播控件使用详解
- android之OkHttp简单使用,键值对,json数据,文件上传。
- Android自定义图片轮播Banner控件使用解析
- FliyBanner无限轮播本地或者网络数据
- Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能
- Android-------使用第三方Banner实现对网络图片的无线轮播
- android 开发使用okhttp进行网络请求简单介绍(未测试)
- android 图片轮播控件 Android-ConvenientBanner简单使用
- android之OkHttp简单使用,键值对,json数据,文件上传。
- 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
- Android控件使用—Listview加载网络数据、图片并跳转传值
- Android 广告(banner)图片轮播、图片浏览、仿微信大图查看控件(支持视频和gif图片)、支持动态添加数据