300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)

Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)

时间:2021-01-07 08:12:34

相关推荐

Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)

一言不合就上图

banner是第三方集成好的直接注入依赖就可以用

老套路先注入依赖:

//banner这个版本才是王道(我的studio是2.3.3)compile 'com.youth.banner:banner:1.4.9'

这是配合使用的依赖(用不用看个人喜好和习惯):

//http3compile 'com.squareup.okhttp3:okhttp:3.9.0'//图片Glidecompile 'com.github.bumptech.glide:glide:3.7.0'//Gsoncompile 'com.google.code.gson:gson:2.8.1'

然后布局:

<com.youth.banner.Bannerandroid: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方法@Overridepublic 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("/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;@Overridepublic void onFailure(Call call, IOException e) {//访问网络失败的方法(自动生成的)}//访问网络成功的方法(自动生成的)@Overridepublic 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() {@Overridepublic 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.+的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。