Android之Volley框架加载网络图片
16lz
2021-01-26
更多干货
-
分布式实战(干货)
-
spring cloud 实战(干货)
-
mybatis 实战(干货)
-
spring boot 实战(干货)
-
React 入门实战(干货)
-
构建中小型互联网企业架构(干货)
-
python 学习持续更新
-
ElasticSearch 笔记
-
kafka storm 实战 (干货)
-
scala 学习持续更新
-
RPC
-
深度学习
-
GO 语言 持续更新
-
nginx 相关文章
-
Android 学习
1.第一种也是最常用的一种:ImageLoader
public void imageLoader(String url,ImageView iv){ //ImageLoader的第一个参数就是RequestQueue:即Volley的请求队列 // ImageLoader的第二个参数是ImageCache:图片缓存,下面会将如何自定义缓存 ImageLoader il=new ImageLoader(queue,new BitCache()); //接下来需要获取一个ImageListener对象 //getImageListener的三个参数分别为:要加载ImageView对象,图片的默认值(网络图片加载完成前所显示的图片),图片请求出错时的值 ImageLoader.ImageListener imageListener=ImageLoader.getImageListener(iv,R.mipmap.ic_launcher,R.mipmap.ic_launcher); //调用ImageLoader的get()方法来加载图片 //get()方法第一个参数为图片的url地址,第二个参数是上面获取的ImageListener对象 //后两个参数用来指定图片允许的最大宽度和高度,可不写 il.get(url,imageListener,500,500); }
自定义图片缓存BitCache.java
public class BitCache implements ImageLoader.ImageCache{ /* LruCache图片缓存处理类 * 特点:当缓存的图片达到了预先设定值时,近期使用次数最少的图片就会被回收 */ private LruCache myCache; public BitCache(){ //设置缓存大小,应用内存的1/8作为缓存空间 myCache=new LruCache((int) (Runtime.getRuntime().maxMemory()/1024/8)){ @Override //缓存图片大小 protected int sizeOf(String key, Bitmap value) { return value.getRowBytes()*value.getHeight(); } }; } @Override //从缓存中得到图片 public Bitmap getBitmap(String s) { return myCache.get(s); } @Override //将图片放入缓存 public void putBitmap(String s, Bitmap bitmap) { myCache.put(s,bitmap); }}
调用方式为:imageLoader(url,img);
2.第二种:ImageRequest
public void imageRequest(String url){ ImageRequest ir=new ImageRequest(url, new Response.Listener() { @Override public void onResponse(Bitmap bitmap) { img.setImageBitmap(bitmap); } }, 500, 500, Bitmap.Config.ARGB_8888, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }); queue.add(ir); }
自定义图片缓存同上
调用方式:imageRequest(url);
3.第三种:直接使用NetworkImageView控件
在布局中直接添加:
主函数设置如下:
NetworkImageView networkImageView= (NetworkImageView) findViewById(R.id.netImg); String url ="http://10.0.2.2:8080/HttpTest/img/h5.png"; ImageLoader imageLoader = new ImageLoader(requestQueue,new BitCache()); networkImageView.setDefaultImageResId(R.mipmap.ic_launcher); networkImageView.setErrorImageResId(R.mipmap.ic_launcher); networkImageView.setImageUrl(url,imageLoader);
--------------------- 作者:未迹 来源:CSDN 原文:https://blog.csdn.net/ygd1994/article/details/51348503?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!
更多相关文章
- Android(安卓)GridView控件 使用
- android中,显示圆形图片
- android无线内网打印机打印出图片
- Android(安卓)-- DiskLruCache
- android 官网处理图片 代码
- 教你怎么做可以换皮肤的软件
- 仿照TapTap做的一个demo,运用了Rxjava+Retrofit+MaterialDesign
- Android缓存机制&一个缓存框架推荐
- Android下的Gallery显示技术分析(三)