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到底是什么,以及它的基本用法. ...
随机推荐
- 线程池基础 ThreadPool基础
原文发布时间为:2010-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 池(Pool)是一个很常见的提高性能的方式。比如线程池连接池等,之所以有这些池是因为线程和数据库连接的创建和关闭是 ...
- .NET设计模式系列文章《转》
原文发布时间为:2008-11-02 -- 来源于本人的百度文章 [由搬家工具导入] http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911 ...
- angular 右击事件的写法
.directive('ngRightClick', function ($parse){ return function (scope, element, attrs){ var fn = $par ...
- VIM使用技巧4
使移动和修改都能重复,对重复的操作能够回退比能够重复更加重要: 目的操作重复回退序号 执行修改{edit}.u1 在行内查找下一个指定字符 f{char}/t{char};,2 在行内查找上一个指定字 ...
- 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom-强连通分量(Tarjan)
本来分好组之后,就确定好了每个人要学什么,我去学数据结构啊. 因为前一段时间遇到一道题是用Lca写的,不会,就去学. 然后发现Lca分为在线算法和离线算法,在线算法有含RMQ的ST算法,前面的博客也写 ...
- 几个相似的DP题
HDU1398 题意:把一个整数分拆成1.4.9.16.…….256.289(注意:只到289)这17个完全平方数的和,有几种方法. 解法不用说自然是DP,因为搜索显然超时. (这样的题我一般不敢开i ...
- [Python Debug] SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
I Got a SettingWithCopyWarning when I ran the following code: tmp=date[date['date'].isnull().values= ...
- POJ 1067 取石子游戏 [博弈]
题意:威佐夫博弈. 思路:看了很多证明都没看懂.最后决定就记住结论好了. 对于所有的奇异局面(必败局),有通项公式 Pi = (a, b), (a = i * [(sqrt(5) + 1) / 2], ...
- 全站之路一路坑(2)——在Apache下部署django博客
上一篇博客:全栈之路一路坑之使用django开发博客 开发完博客之后,很多后续应用需要博客部署之后才可以使用,这篇文章就来尝试一下将开发好的博客部署到服务器上. 开发阶段,一直使用的是virtuale ...
- Ubuntu 16.04下使用Wine安装Notepad++
说明: 1.使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小. 2.关于没有.wine文件夹的解决方法:在命令行上运行winecfg: 下载: (链接 ...