官方网站  https://www.androidhive.info/2014/05/android-working-with-volley-library-1/

    private void initListener() {
        // get请求
        bt_volley_get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // 1 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 2 创建一个请求
                String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";

                StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
                    // 正确接收数据回调
                    @Override
                    public void onResponse(String s) {
                        tv_volley_result.setText(s);
                    }
                }, new Response.ErrorListener() {// 发生异常后的监听回调
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        tv_volley_result.setText("加载失败" + volleyError);
                    }
                });

                // 3 将创建的请求添加到请求队列中
                requestQueue.add(stringRequest);
            }
        });

        // post请求
        bt_volley_post.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 1 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 2 创建一个post请求
                String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
                StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {
                        tv_volley_result.setText(s);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        tv_volley_result.setText("请求失败" + volleyError);
                    }
                }) {
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {

                        Map<String, String> map = new HashMap<String, String>();
                        map.put("value1","param1");

                        return map;
                    }
                };

                // 3 将post请求添加到队列中
                requestQueue.add(stringRequest);
            }
        });

        // 获取json数据
        bt_volley_getjson.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 1 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 2 创建一个请求
                String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
                JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject jsonObject) {
                        tv_volley_result.setText(jsonObject.toString());
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        tv_volley_result.setText("请求失败" + volleyError);
                    }
                });

                // 3 将创建的请求添加到请求队列中
                requestQueue.add(jsonObjectRequest);
            }
        });

        // imagerequest加载图片
        bt_volley_imagerequest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 1 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 2 创建一个图片的请求
                String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
                ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
                    @Override
                    public void onResponse(Bitmap bitmap) {
                        // 正确接收到图片
                        iv_volley_result.setVisibility(View.VISIBLE);
                        iv_volley_result.setImageBitmap(bitmap);
                    }
                }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        iv_volley_result.setImageResource(R.drawable.atguigu_logo);
                    }
                });

                // 3 将请求添加到请求队列中
                requestQueue.add(imageRequest);
            }
        });

        // imageloader加载图片
        bt_volley_imageloader.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 创建一个imageloader
//                ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {
//                    @Override
//                    public Bitmap getBitmap(String s) {
//                        return null;
//                    }
//
//                    @Override
//                    public void putBitmap(String s, Bitmap bitmap) {
//
//                    }
//                });
                ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());

                // 加载图片
                String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
                iv_volley_result.setVisibility(View.VISIBLE);
                ImageLoader.ImageListener imageListener = imageLoader.getImageListener(iv_volley_result, R.drawable.atguigu_logo, R.drawable.atguigu_logo);
                imageLoader.get(url, imageListener);
            }
        });

        // networkimageview加载图片
        bt_volley_networkimageview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 让控件显示
                iv_volley_networkimagview.setVisibility(View.VISIBLE);

                // 创建一个请求队列
                RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);

                // 创建一个Imageloader
                ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());

                // 默认图片和异常图片设置
                iv_volley_networkimagview.setDefaultImageResId(R.drawable.atguigu_logo);
                iv_volley_networkimagview.setErrorImageResId(R.drawable.atguigu_logo);

                // 加载图片
                String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
                iv_volley_networkimagview.setImageUrl(url, imageLoader);
            }
        });
    }

import android.graphics.Bitmap;
import android.util.LruCache;


import com.android.volley.toolbox.ImageLoader;


public class BitmapCache implements ImageLoader.ImageCache {
    private LruCache<String, Bitmap> mCache;

    public BitmapCache() {
        int maxSize = 10 * 1024 * 1024;// 10m
        mCache = new LruCache<String, Bitmap>(maxSize) {
            @Override
            protected int sizeOf(String key, Bitmap bitmap) {
                return bitmap.getRowBytes() * bitmap.getHeight();
            }
        };
    }

    @Override
    public Bitmap getBitmap(String url) {
        return mCache.get(url);
    }

    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        mCache.put(url, bitmap);
    }
}

volley get post json imagerequest imageloader networkimageview 加载网络本地图片的更多相关文章

  1. 利用LruCache为GridView加载大量本地图片完整示例

    MainActivity如下: package cc.testlrucache; import android.os.Bundle; import android.widget.GridView; i ...

  2. [WinForm]dataGridView动态加载以本地图片显示列

    增加一个图片列: C# private void btnQuery_Click(object sender, EventArgs e) { StringBuilder sb=new StringBui ...

  3. Android框架Volley之:利用Imageloader和NetWorkImageView加载图片

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  4. android ImageLoader 混淆加载drawable出现黑色图片的解决方案

    在网上找了很久,没有找到.后来看了源码才知道... 多线程异步加载和显示图片(图片来源于网络.sd卡.assets文件夹,drawable文件夹(不能加载9patch),新增加载视频缩略图) Stri ...

  5. VS调试时JSON格式文件无法加载

    VS调试时JSON格式文件无法加载 报错: 解决:在项目中的web.config中进行配置,configuration节中添加以下部份: <system.webServer> <st ...

  6. Android开发技巧——TextView加载HTML的图片及代码显示问题

    前几天在做一个Gradle用户指南的应用程序,使用的是TextView来加载HTML内容(至于为什么不用WebView,我也没有认真使用并比较过,也许以后会换吧),其中遇见了一些纠结的问题,所幸主要的 ...

  7. Cordova页面加载外网图片失败,Refused to load the image

    原文:Cordova页面加载外网图片失败,Refused to load the image 1.使用Cordova页面加载外网图片失败,抛出异常 Refused to load the image ...

  8. 如何在启用SharePoint浏览器功能的InfoPath 表单中添加托管代码以动态地加载并显示图片

    InfoPath 的浏览器表单不支持加载并显示图片,当然在模板中可以插入图片,但是如果想显示数据库的一幅图片,或是动态加载一张图片就无能为力了. 基实这个问题可以通过在浏览器表单中使用: " ...

  9. 转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式

    Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关 ...

随机推荐

  1. php解析json字符串变量总是空白null

    通过接口获取的json字符串使用json_decode始终无法正确解析,返回空白. 直接把结果字符串复制出来手动创建一个变量却正常,在前端js也能解析,搞了半天不得其解,最后发现是接口输出的结果包含有 ...

  2. .Net Core中的配置文件源码解析

    一.配置简述 之前在.Net Framework平台开发时,一般配置文件都是xml格式的Web.config,而需要配置其他格式的文件就需要自己去读取内容,加载配置了..而Net Core支持从命令行 ...

  3. CMDB与自动化运维,一切尽在掌握中?

    生产力跟不上生产的速度时,就会出现很多问题,如何针对问题进行处理,制定什么样的计划,如何解决就是需要思考的难点? T运维的分类 IT运维,指的是对已经搭建好的网络,软件,硬件进行维护.运维领域也是细分 ...

  4. python装饰器的深度探究

    1.讲装饰器一般讲到这种代码就可以了,但这篇博客会介绍更多: def deco(func): def wrapper(): print("start") func() #调用函数 ...

  5. 好用的Python IDLE Sublime Text 3推荐

    Sublime Text 3 下载地址为 LINK, Sublime Text 3 is currently in beta. The latest build is 3114. 参考的激活方式为输入 ...

  6. android 打开软键盘

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  7. 【spring cloud】spring cloud子module的pom文件添加依赖,出现unknown问题【maven】

    spring cloud项目,一般都是父项目中有多个子服务,也就是子module模块. 如下图: 问题描述:在父项目中引用了常用的jar包,例如,引入了spring boot的依赖,那么在子项目中引入 ...

  8. C#.NET的TabControl如何隐藏和显示页面

    如果需要显示某个页面,则让他的Parent就是TabControl的控件名称,如果要隐藏,则等于null      private void ToolStripMenuItemTeachPanelBa ...

  9. mysql 执行sql文件的方法

     http://philos.iteye.com/blog/162051   实战代码: #mysql导入mysql -um4n -p01D060A476642BA8335B832AC5B211F22 ...

  10. Cocos2d-X中的粒子

    Cocos2d-x引擎提供了强大的type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/particle-s ...