Android开发——获得Json数据,并显示图片
程序员文章站
2022-06-19 23:10:24
流程介绍 1. 使用 网络框架进行 请求,获得 数据 //一个封装好的工具类的静态方法 public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) { OkHttpClient ......
流程介绍
-
使用
okhttp
网络框架进行get
请求,获得json
数据//一个封装好的工具类的静态方法 public static void sendokhttprequest(final string address, final okhttp3.callback callback) { okhttpclient client = new okhttpclient(); cachecontrol control =new cachecontrol.builder().build(); request request = new request.builder() .cachecontrol(control) .url(address) .build(); client.newcall(request).enqueue(callback); }
之后我们调用这个方法可以访问网站,并获得返回的数据
httputil.sendokhttprequest("http://www.baidu.com" + limit, new callback() { @override public void onfailure(call call, ioexception e) { toast.maketext(mainactivity.this, "网络错误", toast.length_short).show(); } @override public void onresponse(call call, response response) throws ioexception { //获得返回的数据(按照我的例子,访问百度,返回来的数据其实就是html文件里面的内容 //如果是其他网站,就是返回其定义返回的数据类型) string result = response.body().string(); //调用gson框架解析json数据,处理完毕后返回一个该相关类的list list<data.resbean> mlist = httputil.parsejsonwithgson(result); //之后对返回的数据进行处理或者是调用 mlist.get(1).getxxx();//相关属性的调用 } });
-
使用
gsonformat
插件将json
数据抽象为实体类(插件自动生成)去android studio里面搜索gsonformat插件,安装重启之后,写一个类,然后直接按下
alt+ins
,选择gsonformat,之后输入json数据,就可以获得一个对应的实体类了 -
使用
gson
框架,解析json数据,获得实体类下面的方法可以根据自己的需要写
/** * 调用gson解析json数据 * @param jsondata json数据 * @return 返回图片实体类list */ public static list<data.resbean> parsejsonwithgson(string jsondata) { //使用轻量级的gson解析得到的json gson gson = new gson(); data data = gson.fromjson(jsondata, data.class); list<data.resbean> mlist = data.getres(); return mlist; }
-
调用所需要的属性即可
对象调用get方法即可获得相关的属性,自己需要什么就调用什么,这里就不多说了。
-
使用
glide
等图片框架加载网络图片glide.with(context).load(url).into(imageview);
我使用的是另外一款ion显示图片框架,因为之前使用glide有些bug,第一次可以加载,但刷新数据之后就无法显示了,可能是因为我使用的glide3.0版本吧,然后觉得glide4.0版本使用有些懵,就选择了ion,感觉和glide差不多,之前的那个bug也是得以解决,就没有想太多了
ion.with(holder.imageview.getcontext()) .load(url) .withbitmap() .placeholder(r.drawable.grey) .intoimageview(holder.imageview);
下一篇: Oracle服务