Volley框架的学习总结(2)

Android:Volley框架使用 阅读详情

本篇文章转载,原文地址:
http://m.blog.youkuaiyun.com/blog/chenfuduo_loveit/42676505
Volley框架适用于与服务器交互频繁,但数据量不大。这篇文章主要是在Listview中大量的图片从网络获取。
运行效果图:
这里写图片描述
代码如下:
目录结构:
这里写图片描述
1、Activity中的代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listview);
        MyAdapter adapter = new MyAdapter(this, images);
        listView.setAdapter(adapter);
    }

2、适配器中的代码如下:

public class MyAdapter extends BaseAdapter {

    private String[] list;

    private Context context;
    // 初始化请求队列;
    private RequestQueue queue;
    // 初始化imageloader;
    private ImageLoader imageLoader;

    public MyAdapter(Context context, String[] list) {
        this.context = context;
        this.list = list;
        queue = Volley.newRequestQueue(context);
        // imageloader传两个参数,一个请求队列,一个bitmap缓存;
        imageLoader = new ImageLoader(queue, new BitmapCache());
    }

    @Override
    public int getCount() {
        return list.length;
    }

    @Override
    public Object getItem(int position) {
        return list[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder = null;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = LayoutInflater.from(context).inflate(
                    R.layout.list_item, null);
            holder.img = (NetworkImageView) convertView
                    .findViewById(R.id.userimage);
            holder.tv = (TextView) convertView.findViewById(R.id.textview);
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();

        }
        String imgUrl = list[position];

        if (imgUrl != null && !imgUrl.equals("")) {
            //设置默认的图片,就是在没有加载到item时,显示的图片;
            holder.img.setDefaultImageResId(R.drawable.ic_launcher);
            //设置加载失败显示的图片;
            holder.img.setErrorImageResId(R.drawable.ic_launcher);
            //设置加载的图片;
            holder.img.setImageUrl(imgUrl, imageLoader);
            holder.tv.setText("item" + (position));

        }

        return convertView;
    }

    static class ViewHolder {
        //用的是Volley包中的networimageview控件,当然也可以用imageview;
        NetworkImageView img;
        TextView tv;
    }

3、BitmapCache缓存代码如下:

public class BitmapCache implements ImageCache {

    private static final String TAG = "BitmapCache";
    private LruCache<String, Bitmap> mCache;

    public BitmapCache() {
        //设置缓存为10M;
        int maxSize = 10* 1024 * 1024;
        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) {
        Log.i(TAG, "get cache " + url);
        return mCache.get(url);
    }

    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        Log.i(TAG, "get cache: " + url);
        if (bitmap != null) {
            mCache.put(url, bitmap);
        }
    }

Demo下载地址eclipse版:
http://download.youkuaiyun.com/detail/androidxiaogang/9198161

Volley网络请求框架总结,java,kotlin 说两句 现在很多人都说volley已经过时了,因为现在主流的就是OKhttp和retrofit以及dragger2了,框架是主流的MVP框架,使用这些网络请求库更优良,这段时间刚好有空,想整理一下,我的理解里,没有过时不过时,没有哪个好,哪个不好,技术是用来解决实际问题的,有诸多的选择的时候,一定有一个最适合当前问题的解决方案,因为每一个工具都有其特点、优势、劣势,那些淘汰掉的是因为有更方便更优良... 阅读详情

相关推荐

【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

摘要 本文旨在从大量没有人工标注的视频中学习用于面部动作单元检测的区分表示。受面部动作是面部肌肉运动这一事实的启发,论文将这些运动描述为不同帧中两幅面部图像之间的转换,并将其用作学习表示的自我监控信号。但是,在不受控制的情况下,这种转换是由面部动作和头部运动引起的。为了消除头部运动的影响,我们提出了一个双圈自动编码器(TCAE),它可以解开面部动作相关运动和头部运动相关运动。具体而言,TCAE被训练成分别将源面部的面部动作和头部姿态改变为目标面部的面部动作和头部姿态。我们的实验验证了TCAE解耦运动的能力。

Celine的博客 4554

Volley和网络数据通信工作总结

1. put、get、post和delete     他们是与服务器交互的方法。post、delete、put、get分别对应HTTP协议中的增删改查四种操作行为。   1.1 get和post的区别     这两者都是发送数据并返回数据。只是get是发送索引去获取服务器内容,而post是发送内容获取服务器的反馈。Rest模式get,put,post,delete含义与区别(转)这篇Bl

violetjack的专栏 1301

【RT-Thread】从零到一:RT-Thread Studio工程创建与程序下载全流程实战

本文详细介绍了RT-Thread Studio开发环境的安装与使用,从工程创建到程序下载的全流程实战指南。通过具体案例演示了如何在STM32平台上快速开发RT-Thread应用,包括时钟配置、内存优化、构建调试等关键技巧,帮助开发者高效完成嵌入式系统开发。

weixin_30336061的博客 541

volley框架网络获取的使用

1.导包 2.自己写个类继承Application public class myapp extends Application { private static RequestQueue requestQueue; @Override public void onCreate() { super.onCreate();

你全家都是博客 400

基于价值的深度强化学习:DQN

本文主要是介绍DQN原理和算法伪代码和代码实现,算法实现包括pytorch版本和stable-baselines3版本

溯源的专栏 1083

使用bandersnatch搭建pypi 本地镜像源(20211026)

需求背景:公司内网不能联网,同时开发工作需要各种python的模块,因此需要搭建一个pypi的本地镜像源。 参考网上的方法,总结了大致有下面几种方式搭建pypi本地源: devpi: 企业内网利用devpi搭建pypi私服 - 简书 pip2pi: https://yangfannie.com/1439.html pypiserver: https://zhongneng.github.io/2019/02/16/creat-pip/ bandersnatch:基于bandersnatch搭...

liurizhou的博客 6468

Android网络框架Volley的使用总结

其实Volley网络框架实现了二级缓存机制(内存和网络),比如页面的信息刚使用Volley网络框架来请求数据,那么它的数据可以保存在缓存中,页面跳转到其他页面后,再跳转到原来缓存过的页面,那么这时是不需要重复请求网络数据的。但是内存保存时间并不长久,它只能保证短时间内相同的数据资源不需要再次请求网络,从而节省用户流量。

wenzhi的博客 2839

一文详解数据仓库、数据湖、湖仓一体和数据网格

本文对数据仓库、数据湖、湖仓一体、数据网格四个技术概念进行了辨析,并对它们的优势和局限给出了对比介绍。

oOBubbleX的博客 2593

关于Volly框架使用的心得(1)

一、在这里先对 Volly 做一个简单的了解 jar包下载的地址:http://download.youkuaiyun.com/detail/sinyu890807/7152015 。下载后放置到libs中添加依赖 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。android系统中主要提供了两种方式来进行H

zhangjin12312的博客 620

PID调参避坑手册:用APM/PX4飞控让无人机稳如老狗

本文提供了一份针对APM/PX4飞控的PID调参实战指南。文章从理解PID控制原理出发,详细解析了级联控制结构,并给出了从内环到外环的五步调参流程与数据日志分析方法,帮助无人机爱好者避开常见误区,实现稳定飞行。

red88的博客 873

uniapp原生安卓插件开发之路

声明: 我的功能需求:全局悬浮框,也就是在其他应用上依旧能悬浮。查遍uni文档,无法实现,甚至native.js也无法实现,无奈只能走上原生插件开发这条不归路了。(吐槽:天天写前端js,突然写了下android简直要炸,public static String啥的,var不香嘛,不过别人严谨肯定还是有别人道理的,加油吧,争取能入个门!) 本人不懂安卓开发,完全安卓小白,所以安卓方面可能表达的不是很好,安卓代码可能写的不优美,但我功能最终还是实现了。但是为了需求,能力总能被“逼”出来。有描述错误的还望指正

Jone's Area 1万+

volley框架学习(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。    1、对volley源码结构的解析     源码有2个文件夹: 1.1、 volley包下: 1、VolleyLog.java:volley框架自定义的日志工具类。 VolleyError.java:继承Exception,自定义封装的异常类。 TimeoutError.java:继承Vo

jiyiqini的博客 417

补丁1.0:使用Eviews做ADF检验

补丁1.0:使用Eviews做ADF检验

Jet4505的博客 1961

Volley 框架异常-Unexpected response code 505 for http

Volley框架中%2B 04-18 15:19:11.620: E/Volley(14908): [313376]BasicNetwork.performRequest: Unexpected response code 505 for http://121.199.20.10:8095/MobileJiJiGou/submitTakeOut.htm?endTime=2014-0...

weixin_30709635的博客 229

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android 使用 Volley 实现网络请求

更多:http://www.360doc.com/content/22/0510/12/12185854_1030641565.shtml。Volley框架学习参考:https://www.cnblogs.com/nhgtx/p/16918545.html。解决:将http改为https即可。

qq_27494201的博客 348

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Volley框架简介

一、引言 虽然网上已经有很多大神、高手都写过了类似的帖子,但作为新人,必须要走模仿的道路,再考虑超越,因此学习大神的笔记,记录自己的理解,是一个菜鸟走向成功的必经之路啊。如签名所言,记录自己摸爬滚打的经历,享受不悔的青春。废话不多说,言归正传。 二、Volley是什么? Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。 三、Volley的主要特性 (

不悔的青春 4018

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

volley框架学习

需求场景:用户网络不好或者流量用完的时候,原生volley框架会抛一个com.android.volley.TimeoutError的异常错误,虽然这是这是正常的,但是有两个问题: 1.我们使用bugly检测,bugly上捕获到了这种错误,会影响我们APP的错误率。 2.只在bugly上体现,也无法衡量我们到底有多少用户出现这种问题。 所以,我们想把这个错误添加回调接口上抛出来,由应用层来接收处理和上报。 # 一.框架的学习 针对volly框架改造,那么首先就要学习一下volley框架。 首先看一下使用

分享+记录 707

Volley框架学习总结

Volley框架特点: 适用于频繁请求而每次请求数据量不会很大; 在请求的基础上做了磁盘缓存; 防止多次相同请求浪费资源; 提供String、Json、图片异步下载; 网络请求的优先级处理; 图片请求无需担心生命周期问题。 Volley框架使用: 首先,通过Volley的静态方法new一个请求队列 1 RequestQueue mQueue = Volley.newRequest...

android开发笔记 324

Volley框架的使用

所谓Volley,它是2013年Google I/O上发布的一款网络框架,基于Android平台,能使网络通信更快,更简单,更健全。它的优点:(1)默认Android2.3及以上基于HttpURLConnection,2.3以下使用基于HttpClient;(2)符合Http 缓存语义 的缓存机制(提供了默认的磁盘和内存等缓存);(3)请求队列的优先级排序;(4)提供多样的取消机制;(5)提供简便的

来啊 快活啊 2163

Volley框架支持HTTPS请求

第一次写帖子,嘿嘿。 最近了解到google2013IO大会出了个网络框架,正好项目也需要用到,就看了下。 最后发现接口都是HTTPS的,但是Volley默认是不支持HTTPS,网上找了好久,都没有对Volley HTTPS请求做解答。 所以分享下心得。 bvin大神已经分析框架的帖子 在下面的传送: 谷歌Volley网络框架讲解——第一篇

ysh06201418的专栏 6888

安卓框架Volley介绍及简单使用

安卓最热门框架Volley介绍及简单使用Volley简介使用方式导入使用字符数据的处理StringRequest 网络请求返回字符串JsonObjectRequest json格式的数据通信图片数据的处理ImageRequest 图片请求ImageLoader 更加强大的网络图片请求 Volley简介 所谓Volley,它是2013年Google I/O上发布的一款网络框架,基于Android平台...

fjnu_se的博客 4643

【Android】volley网络框架的文件下载

volley框架的文件下载真的是很少见的了,自己做一下记录 import android.os.Environment; import android.support.annotation.NonNull; import android.util.Log; import com.android.volley.NetworkResponse; import com.android.volley...

CQ173的博客 2171

Android Volley框架支持WebService Volley与Ksoap2-Android的完美融合

Android Volley框架支持WebService Volley与Ksoap2-Android的完美融合 1. 为什么要做这个项目 Volley是谷歌的一套网络通信库,发布于2013年的Google I/O大会上。它的出现,填补了安卓SDK 在不影响用户体验的情况下进行网络通信的空白。Volley有许多优点,如: (1). 扩展性强。Volley 中大多是基于接口的设计,可

yangbaitao1971的博客 263

volley框架的使用

volley框架的基本使用使用的原因Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。 不过HttpURLConnection和HttpClient的用法还是稍微有些复杂的,如果不进行适当封装的话,很容易就会写出不少重复代码主要就是进行了以下三步操作: 创建一个Requ

sinat_17314503的博客 1978

Android学习系列之Volley框架

1.功能介绍 1.1 volley Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架 1.2 volley主要特点 (1). 扩展性强。Volley 中大多是基于接口的设计,可配置性强。 (2). 一定程度符合 Http 规范,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的处理,请求头的处理,缓存机制的支持等。并支持重试及优先级

喝醉的清茶 406

Volley框架源码分析

Volley框架分析Github链接Volley框架分析Volley源码解析为了学习Volley的网络框架,我在AS中将Volley代码重新撸了一遍,感觉这种照抄代码也是一种挺好的学习方式.再分析Volley源码之前,我们先考虑一下,如果我们自己要设计一个网络请求框架,需要实现哪些事情,有哪些注意事项?我的总结如下: 需要抽象出request请求类(包括url, params, method等),抽

小一的专栏 3603
上一篇: Volley框架的学习总结(1)
下一篇: Universal_image_loader加载网络图片
android_xiaogang
博客等级 码龄12年 89粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值