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
原创粉丝点击