imageloader

Android网络通信:Volley(二)

余生长醉 提交于 2020-04-07 18:29:53
1、ImageRequest的用法 前面我们已经学习过了StringRequest和JsonRequest的用法,并且总结出了它们的用法都是非常类似的,基本就是进行以下三步操作即可: 1. 创建一个RequestQueue对象。 2. 创建一个Request对象。 3. 将Request对象添加到RequestQueue里面。 其中,StringRequest和JsonRequest都是继承自Request的,所以它们的用法才会如此类似。那么不用多说,今天我们要学习的ImageRequest,相信你从名字上就已经猜出来了,它也是继承自Request的,因此它的用法也是基本相同的,首先需要获取到一个RequestQueue对象,可以调用如下方法获取到: RequestQueue mQueue = Volley.newRequestQueue(context); 接下来自然要去new出一个ImageRequest对象了,代码如下所示: ImageRequest imageRequest = new ImageRequest( "http://developer.android.com/images/home/aw_dac.png", new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap

一口一口吃掉Volley(二)

穿精又带淫゛_ 提交于 2020-02-27 04:14:03
欢迎访问我的 个人博客 转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(二)/ 相信看了 第一篇教程 之后,你应该会对Volley有一个初步的了解了吧,那接下来就继续学习如何使用Volley进行开发吧! 配置Gradle 使用如下命令导入Volley库: compile 'com.mcxiaoke.volley:library:1.0.19' 如果你还是使用Eclipse进行开发的话,可以下载 volley的jar包 导入工程。 添加联网许可 在AndroidManifest.xml文件中添加联网的请求 <uses-permission android:name="android.permission.INTERNET"/> 使用StringRequest 如果你需要通过网络访问的资源属于String字符串的资源,那么使用StringRequest就最为简单了,只需按照如下步骤就行了。 ① 获取一个RequestQueue RequestQueue mQueue = Volley.newRequestQueue(this); ② 构造一个StringRequest对象 StringRequest stringRequest=new StringRequest("http://www.wensibo.top" , new

主流图片加载框架 ImageLoader、Glide、Picasso、Fresco 对比

允我心安 提交于 2020-02-04 11:40:57
图片缓存库主页: Glide https://github.com/bumptech/glide fresco - An Android library for managing images and the memory they use https://github.com/facebook/fresco picasso - A powerful image downloading and caching library for Android http://square.github.io/picasso/ https://github.com/square/picasso Android-Universal-Image-Loader - Powerful and flexible library for loading, caching and displaying images on Android. https://github.com/nostra13/Android-Universal-Image-Loader A custom image view for Android, designed for photo galleries and displaying huge images https://github.com/davemorrissey

Android开源框架之ImageLoader

假装没事ソ 提交于 2020-01-31 14:23:45
特点 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 支持图片的内存缓存,文件系统缓存或者SD卡缓存 支持图片下载过程的监听 根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存 较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片, 一般使用在ListView,GridView中 ,滑动过程中暂停加载图片,停止滑动的时候去加载图片 提供在较慢的网络下对图片进行加载 下载地址 https://github.com/nostra13/Android-Universal-Image-Loader 准备工作 1)导入universal-image-loader-1.9.5.jar到项目中 2)创建MyApplication继承Application,在oncreate()中初始化ImageLoader public class MyApplication extends Application { @Override public void onCreate ( ) { super . onCreate ( ) ; // 初始化参数

Android开源框架ImageLoader的完美例子

懵懂的女人 提交于 2020-01-07 00:46:26
本文转载自: https://www.cnblogs.com/zgz345/p/3502315.html 作者:zgz345 转载请注明该声明。 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片,在拖动ListView的时候不会出现卡的现象。关于 Image Loader这个开源框架的使用有很多网友都介绍过,不过还不够清楚,这里有一个关于这个开源项目的完美例子,ListView的图片加载、GridView的图片加载、ViewPager的图片加载、Gallery画廊的图片加载、Widget的使用。很完善的一个例子,在这里我把所有界面效果做出博客分享出来,需要源码的朋友到我的资源页下载 下载地址: http://download.csdn.net/detail/wwj_748/5975847 要使用ImageLoader就要到这里下载jar包: https://github.com/nostra13/Android-Universal-Image-Loader 然后导入项目中去就行了 项目文档结构图: 从界面说起,界面本身是没什么好说的,就是如何在xml当中进行定义罢了 有以下这么多个布局文件 一个一个来看呗 首先是这样的效果 这个在Android4.2.2比较好看,在Android2.3.3就显得比较挫。 /2013.8.19_Universal_Image

android listview展示图片

被刻印的时光 ゝ 提交于 2019-12-06 14:52:36
最近学习android开发,感触颇多,和网站开发对比,还是有很大的差距,在这里记录一下。 android listview展示图片 在网站开发上,展示图片非常简单,一个HTML img标签就搞定,加上服务器无非就是在view里动态展示,或者用ajax动态获取,或者用vue等动态获取js展示。 但在android上就非常麻烦,先要把网络图片下载,转换成流文件,再转换成drawable资源文件才能在app上显示,里面的xml各种配置,对于一个写惯HTML的人来说很烦。 主要步骤。 假设在一个Listshow的二级页面展示, 首先要准备的东西, Adapter,Adapter是连接后端数据和前端显示的适配器接口, 一些自定义的类,下载图片的类imageloader,缓存的类memorycache,存文件的类filecache xml文件,主列表的xml,listview的xml,每次下载图片覆盖的drawable资源xml 具体代码: 主要的activity package com.example.huibeb;import android.os.Bundle;import android.widget.ListView;import androidx.appcompat.app.AppCompatActivity;import com.example.huibeb.model

Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍

孤者浪人 提交于 2019-12-06 08:56:28
转载请注明本文出自xiaanming的博客( http://blog.csdn.net/xiaanming/article/details/26810303 ),请尊重他人的辛勤劳动成果,谢谢! 大家好!差不多两个来月没有写文章了,前段时间也是在忙换工作的事,准备笔试面试什么的事情,现在新工作找好了,新工作自己也比较满意,唯一遗憾的就是自己要去一个新的城市,新的环境新的开始,希望自己能尽快的适应新环境,现在在准备交接的事情,自己也有一些时间了,所以就继续给大家分享Android方面的东西。 相信大家平时做Android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于新手来说,这些问题解决起来会比较吃力,所以就有很多的开源图片加载框架应运而生,比较著名的就是Universal-Image-Loader,相信很多朋友都听过或者使用过这个强大的图片加载框架,今天这篇文章就是对这个框架的基本介绍以及使用,主要是帮助那些没有使用过这个框架的朋友们。该项目存在于Github上面 https://github.com/nostra13/Android-Universal-Image-Loader ,我们可以先看看这个开源库存在哪些特征 多线程下载图片,图片可以来源于网络,文件系统

设计模式之单例模式

北城以北 提交于 2019-12-06 04:15:57
单例模式看起来简单,但是需要考虑的问题却很多。 保证一个类仅有一个实例,并提供一个该实例的全局访问点。——《设计模式》 在软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 所以得考虑如何绕过常规的构造器(不允许使用者new出一个对象),提供一种机制来保证一个类只有一个实例。 应用场景: Windows的Task Manager(任务管理器)就是很典型的单例模式,你不能同时打开两个任务管理器。Windows的回收站也是同理。 应用程序的日志应用,一般都可以用单例模式实现,只能有一个实例去操作文件。 读取配置文件,读取的配置项是公有的,一个地方读取了所有地方都能用,没有必要所有的地方都能读取一遍配置。 数据库连接池,多线程的线程池。 实现: 1、饿汉式(线程安全,调用效率高,但是不能延时加载): public class ImageLoader{ private static ImageLoader instance = new ImageLoader; private ImageLoader(){} public static ImageLoader getInstance(){ return instance; } } 一上来就把单例对象创建出来了,要用的时候直接返回即可,这种可以说是单例模式中最简单的一种实现方式

[原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

一曲冷凌霜 提交于 2019-12-04 21:29:10
  最近,总算有时间去做些平时喜欢而没空去做的事情。一直觉得项目中使用的Image Loader适用性不强,昨晚在github随便逛逛,发现一个开源项目Android-Universal-Image-Loader十分火热。代码并不十分复杂,却写的不错,决定记录和分享一下。   Android-Universal-Image-Loader是一个针对图片加载、缓存的开源项目。github: https://github.com/nostra13/Android-Universal-Image-Loader   @author nostra13频繁的更新记录来看,Android-Universal-Image-Loader的后期维护比较好。从Applications using Universal Image Loader来看,还是相当强大的,如:EyeEm Camera, UPnP/DLNA Browser, Facebook Photo/Album,淘宝天猫,京东商城等。到底有何种魅力让大家纷至沓来?    01. 项目包结构 图 1   去掉无实际意义的包名:com.nostra13.universalimageloader,一切变显得比较清楚了。   (1)cache主要是磁盘缓存及内存缓存预定的接口和常规实现类,包含的算法较多(并不复杂),如FIFO算法、LRU算法等。   

Android 网络通信框架Volley简介(Google IO 2013)

↘锁芯ラ 提交于 2019-12-04 13:56:02
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。 这是Volley名称的由来: a burst or emission of many things or a large amount at once 在Google IO的演讲上,其配图是一幅发射火弓箭的图,有点类似流星。见下图 其实,从这幅图,我们也可以看出来,Volley特别适合数据量不大但是通信频繁的场景。 1.1. Volley引入的背景 在以前,我们可能面临如下很多麻烦的问题。 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取。 通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源 在AsyncTask#onPostExecute()里设置相应ImageView的属性。 而在Volley下,只需要一个函数即可,详细见后面的例子。 再比如,屏幕旋转的时候,有时候会导致再次从网络取得数据。为了避免这种不必要的网络访问