上节我们讲到网络访问文件字符串,这一节我们来讲解网络访问图片视图资源。
我们有两种方式来进行如上访问:
第一种,就是类似于上一种访问文件资源的方式进行访问
代码如下:
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对象中,执行即可。
最后得到的手机效果图如下:
在这里插入图片描述
好的,今天的学习到此结束。