Volley框架载入网络图片
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框架载入网络图片的更多相关文章
- Android开发利用Volley框架下载和缓存网络图片
2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可 ...
- Android批量图片载入经典系列——Volley框架实现多布局的新闻列表
一.问题描写叙述 Volley是Google 2013年公布的实现Android平台上的网络通信库,主要提供网络通信和图片下载的解决方式,比方曾经从网上下载图片的步骤可能是这种流程: 在ListAda ...
- Android Volley入门到精通:使用Volley加载网络图片
在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完 ...
- Android 学习笔记之Volley(八)实现网络图片的数据加载
PS:最后一篇关于Volley框架的博客... 学习内容: 1.使用ImageRequest.java实现网络图片加载 2.使用ImageLoader.java实现网络图片加载 3.使用NetWork ...
- Android Volley框架的使用(三)
此博文源码下载地址 https://github.com/Javen205/VolleyDemo.git Image Request 为了更方便的使用Volley中的图片请求,我们同样先在Voll ...
- Android网络通信Volley框架源代码浅析(三)
尊重原创 http://write.blog.csdn.net/postedit/26002961 通过前面浅析(一)和浅析(二)的分析.相信大家对于Volley有了初步的认识,可是假设想更深入的理解 ...
- 安卓高级2 Volley框架的使用案例
初始化类: MyApp.java package qianfeng.com.day37_volley_pull.app; import android.app.Application; import ...
- 使用Volley框架中的ImageLoader来异步的加载图片
Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...
- Android Volley完全解析(二),使用Volley加载网络图片
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482165 在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法. ...
随机推荐
- HDU 4487 Maximum Random Walk
Maximum Random Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- updatepanel中使用alert弹出框方法
原文发布时间为:2009-05-17 -- 来源于本人的百度文章 [由搬家工具导入] ScriptManager.RegisterStartupScript(this.UpdatePa ...
- c++基础(一)
c++中静态内存分配与动态内存分配:1.静态对象是有名字的变量, 我们直接对其进行操作 ,而动态对象是没有名字的变量我们通过指针间接地对它进行操作.(静态内存分配是因为在源码编译的时候,编译器就为变量 ...
- poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
题目链接 题意 用\(1\times 2\)的骨牌铺满\(H\times W(H,W\leq 11)\)的网格,问方案数. 思路 参考focus_best. 竖着的骨牌用\(\begin{pmatri ...
- Linux signal 那些事儿(4)信号的deliver顺序【转】
转自:http://blog.chinaunix.net/uid-24774106-id-4084864.html 上一篇博文提到了,如果同时有多个不同的信号处于挂起状态,kernel如何选择deli ...
- Day 30 process&thread_2
进程和线程_2 1.继承类创建线程 import threading,time class Mythread(threading.Thread): #建立类,继承threading.Thread de ...
- TDictionary字典 记录 的赋值。
type TRen = record age: Integer; //把name定义成结构的属性. private Fname: string; procedure Setname(const Val ...
- Cryptography I 学习笔记 --- 总结
在b站上大概的看完了Dan Boneh的密码学,对现代密码学总算有了一个粗浅的认识. 总算能在纸上手写RSA公式并且证明之了,蛤蛤. 总体的感触就是,现代密码学是一个非常博大精深的体系,我等程序员最重 ...
- (21)python lambda表达式
lambda表达式是一个匿名函数 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用 最简单的例子 add = lambda x,y : x + y print add(3,5) #out ...
- ural 1519 fomular 1 既插头DP学习笔记
直接看CDQ在2008年的论文吧. 个人认为她的论文有两个不明确的地方, 这里补充一下: 首先是轮廓的概念. 我们在进行插头DP时, 是从上往下, 从左往右逐个格子进行的, 已经处理的格子与未经处理的 ...