android进阶开发第一天-网络数据的访问导入(下篇)

上节我们讲到网络访问文件字符串,这一节我们来讲解网络访问图片视图资源。
我们有两种方式来进行如上访问:
第一种,就是类似于上一种访问文件资源的方式进行访问
代码如下:

public void rightbutton(View view) {
        Ion.with(this)
                .load("http://thecatapi.com/api/images/get?format=xml&results_per_page=6")
                .asString()
                .setCallback(new FutureCallback<String>()
                {
                    @Override
                    public void onCompleted(Exception e, String result)
                    {
                        try
                        {
                            JSONObject jsondata= XML.toJSONObject(result);
                            JSONObject images=jsondata.getJSONObject("response")
                                    .getJSONObject("data")
                                    .getJSONObject("images");
                            JSONArray a=images.getJSONArray("image");
                            for(int i=0;i<a.length();i++)
                            {
                                JSONObject img=a.getJSONObject(i);
                                String url=img.getString("url");
                                Log.i("Cat URL: ",url);
                            }
                        }catch (JSONException e1)
                        {
                            e1.printStackTrace();
                        }
                    }
                });
    }

值得注意的知识点
1:有的浏览器只支持XML格式,不支持JSONObject格式怎么办?这时候我们就要用XML转JSONObject对象了(如何转呢,在浏览器上输入http://www.java2s.com/Code/JarDownload/java/java-json.jar.zip,下载java-json.jar文件,复制后黏贴到app下的libs文件夹中,复制完成后可查看Android 项目下的app文件夹下的build.gradle(module:app)文件,文件中会有implementation files(‘libs/java-json.jar’))

JSONObject jsondata= XML.toJSONObject(result);
 JSONObject images=jsondata.getJSONObject("response")
  .getJSONObject("data")
   .getJSONObject("images");
  JSONArray a=images.getJSONArray("image");

操作像上面的一样,层层导入视图文件资源到JSONArray类型的a对象

for(int i=0;i<a.length();i++)
   {
	 JSONObject img=a.getJSONObject(i);
     String url=img.getString("url");
     Log.i("Cat URL: ",url);
  }

解释一下这个操作,这是把a对象对应的image个数一一对应出来,然后用getstring函数提取出来这个image的url,接下来用Log.i("…",url)函数使得一点击APP按钮就让它在相应框架中显示出来。
接下来介绍第二种方式(简单粗暴类型):
第一步:先下载一个Picasso数据库(下载方式为:在Gradle Scripts文件夹下build gradle文件中输入compile ‘com.squareup.picasso:picasso:2.5.2’,然后在提示的右上角点击下载的英文符号进行下载即可)
如下图示:

输入末尾代码进行下载
第二步,直接将image视图链接地址赋值给url,然后执行自定义算法loadimage(url),如下所示:
url=“https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=391081212,2756153018&fm=27&gp=0.jpg”;
loadimage(url);
接下来想想应该如何进行这个自定义算法?代码如下

 private void loadimage(String urlstring)
   {
       ImageView imgview=new ImageView(this);
       GridLayout grid=(GridLayout)findViewById(R.id.grid);
       grid.addView(imgview);
       Picasso.with(this)
               .load(urlstring)
               .into(imgview);
   }

定义 ImageView对象和GridLayout框架,然后将imgview视图导入grid框架中,最后将url的地址指向的image视图导入imgview对象中,执行即可。
最后得到的手机效果图如下:
在这里插入图片描述
真机测试图
好的,今天的学习到此结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值