Android开发中,载入网络server的图片是非经常常使用的。当然我们能够自己写server接口去实现,只是要做到server性能

优越的话,开发起来比較麻烦点。所以本博客要介绍Volley框架进行网络图片载入的demo!

Volley框架集成了

AsyncHttpClient和Universal-Image-Loader的长处。开发起来很的方便了。并且性能也不错!

我们能够去下载Volley.jar,这个是我在网上找的:点击打开链接

能够去下载这个我在网上找的哦!

注意:这些网络请求的。首先都要开启权限,我们打开AndroidManifest.xml

然后定义一个全局变量Context context;

增加代码:

       <!-- 配置网络连接须要的属性 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

方法一:通过ImageRequest,进行载入

 public void imageRequest(){
context = this;
imageView = (ImageView)findViewById(R.id.imageView1);
//创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context); //创建ImageRequest对象
ImageRequest imageRequest = new ImageRequest(
"http://c.csdnimg.cn/public/favicon.ico",//url
new Response.Listener<Bitmap>() {//监听器Listener
@Override
public void onResponse(Bitmap response) {
imageView.setImageBitmap(response);
}
//參数3、4表示图片宽高,Bitmap.Config.ARGB_8888表示图片每一个像素占领4个字节大小
}, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {//图片载入请求失败的回调Listener
@Override
public void onErrorResponse(VolleyError error) {
imageView.setImageResource(R.drawable.ic_normal_pic);
}
});
//将ImageRequest载入到Queue
requestQueue.add(imageRequest);
}

方法二:通过ImageLoader。进行载入

介绍一下imageLoader,imageLoader不是继承ImageRequest。不是内部实现还是通过ImageRequest的,

ImageLoader来实现的优点是能够过滤反复的url,这样就提高了性能

 public void imageLoad(){
context = this;
imageView = (ImageView)findViewById(R.id.imageView1);
//创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context);
//创建一个ImageLoader
ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
} @Override
public Bitmap getBitmap(String url) {
return null;
}
}); //ImageListener
ImageListener listener = ImageLoader.getImageListener(imageView,
R.drawable.ic_normal_pic, R.drawable.ic_normal_pic); //url、listener、maxWidth、maxHeight
imageLoader.get("http://c.csdnimg.cn/public/favicon.ico", listener, 200, 200); }

方法三:通过NetworkImageLoader

继承自ImageView的。具备ImageView控件的全部功能,而且在原生的基础之上增加了载入网络图片的功能。也就是

Volley框架提供的View

  public void networkImageLoad(){
context = this; //创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context);
//创建一个ImageLoader
ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
} @Override
public Bitmap getBitmap(String url) {
return null;
}
});
//NetworkImageView
networkImageView = (NetworkImageView) findViewById(R.id.network_image_view); networkImageView.setDefaultImageResId(R.drawable.ic_normal_pic);
networkImageView.setErrorImageResId(R.drawable.ic_normal_pic);
//设置url和ImageLoader对象
networkImageView.setImageUrl("http://c.csdnimg.cn/public/favicon.ico",
imageLoader);
}

Layout:

 <com.android.volley.toolbox.NetworkImageView
android:id="@+id/network_image_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
/>

Demo代码下载:点击打开链接




Volley框架载入网络图片的更多相关文章

  1. Android开发利用Volley框架下载和缓存网络图片

    2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可 ...

  2. Android批量图片载入经典系列——Volley框架实现多布局的新闻列表

    一.问题描写叙述 Volley是Google 2013年公布的实现Android平台上的网络通信库,主要提供网络通信和图片下载的解决方式,比方曾经从网上下载图片的步骤可能是这种流程: 在ListAda ...

  3. Android Volley入门到精通:使用Volley加载网络图片

    在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完 ...

  4. Android 学习笔记之Volley(八)实现网络图片的数据加载

    PS:最后一篇关于Volley框架的博客... 学习内容: 1.使用ImageRequest.java实现网络图片加载 2.使用ImageLoader.java实现网络图片加载 3.使用NetWork ...

  5. Android Volley框架的使用(三)

     此博文源码下载地址  https://github.com/Javen205/VolleyDemo.git Image Request 为了更方便的使用Volley中的图片请求,我们同样先在Voll ...

  6. Android网络通信Volley框架源代码浅析(三)

    尊重原创 http://write.blog.csdn.net/postedit/26002961 通过前面浅析(一)和浅析(二)的分析.相信大家对于Volley有了初步的认识,可是假设想更深入的理解 ...

  7. 安卓高级2 Volley框架的使用案例

    初始化类: MyApp.java package qianfeng.com.day37_volley_pull.app; import android.app.Application; import ...

  8. 使用Volley框架中的ImageLoader来异步的加载图片

    Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...

  9. Android Volley完全解析(二),使用Volley加载网络图片

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482165 在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法. ...

随机推荐

  1. [CODEVS1051]接龙游戏

    题目描述 给出了N个单词,已经按长度排好了序.如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙). 你的任务是:对于输入的单词,找出最长的龙. 输入描述 Input D ...

  2. js5:框架的使用,使框架之间无痕连接

    原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <base target="js4" ...

  3. .bat 处理错误码

    某些命令只会返回error level,而要添加互操作性,.bat文件的返回值,exit code应该最后指定,那么需要,在这个单行的命令后面单个添加处理error level 的语句,最后再做统一的 ...

  4. [LeetCode] Longest Substring Without Repeating Characters最长无重复子串

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  5. Windows下C++多线程同步与互斥简单运用(转)

    1.  互斥量,Mutex #include <Windows.h> #include <iostream> using namespace std; DWORD WINAPI ...

  6. C# 用实例来理解IComparable和IComparer

    通过Array的Sort方法来理解的 Sort方法要 通过对象去继承IComparable接口来实现排序(当然也有其它办法),我想入门这可能就是对这句话有点不理解,在下面会有注释 using Syst ...

  7. 转载——C# 6.0可能的新特性及C#发展历程

    据扯,C# 6.0在不远的将来就发布了,对应的IDE可能是VS 2014(.Net Framework 5.0),因为VS 2013已于2013年10月份发布了,对应的是.Net Franework ...

  8. 用户找回密码功能JS验证邮箱通过点击下一步隐藏邮箱输入框并修改下一步按钮的ID

    //这里是BaseDao /** * 获得一个对象 * @param hql * @param param * @return */ public Object get(String hql, Obj ...

  9. sprintf 心得

    [string print format]sprintf指的是字符串格式化命令. [主要功能]是把格式化的数据写入某个字符串中. sprintf是个变参函数. 使用sprintf对于写入buffer的 ...

  10. GLB串

    题目描述 只要一个字符串中包含大写“GLB”,高老板就认为这是一个GLB串.现在给你一些字符串,请你帮高老板判断这些字符串是不是GLB串. 输入 首先是一个整数T,表示T行数据,每行一个字符串(只包括 ...