Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)
来源:互联网 发布:李弘基变脸软件 编辑:程序博客网 时间:2024/06/05 03:08
一言不合就上图
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(); 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.+的
阅读全文
0 0
- Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)
- Android无限循环Banner(网络获取数据)
- 广告栏(自动轮播,无限循环)-图片轮播控件Banner的简单使用总结
- Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能
- android网络请求组件(一)OkHttp3的封装使用
- Banner轮播图的简单使用
- okhttp3的简单使用
- okHttp3的简单使用
- BSYBannerScrollview,最简单的Banner轮播图控件
- 简单易用的轮播图控件Banner
- Android轮播图控件之Banner学习使用
- 无限轮播的Banner简单方法
- Android中首页banner的简单使用
- RN版本无限轮播的使用(Banner)
- Banner简单的使用
- Banner的简单使用
- Banner简单的使用
- banner的简单使用
- PHP递归多维数组替换键名和键值
- Windows设置本地DNS域名解析Hosts
- Web开发学习笔记--JAvaScript JQuery AJax
- Kubernetes与OpenStack融合支撑企业级微服务
- 线程的相关概念
- Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)
- Chrome 63的最新安全性能:TLS 1.3和站点隔离
- X264的编译(Win7)
- error: #error This file requires compiler and library support for the ISO C++ 2011 standard.
- 数组方法sort()
- 古典问题:兔子出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问两年内每个月的兔子总数为多少?(斐波那切数列)
- 454. 4Sum Ⅱ
- 排序算法之选择排序
- PEP 8 Python代码规范