노트 13 | Volley (2) 네트워크 그림 을 불 러 오 는 세 가지 방법 연습

76254 단어 공구.네트워크
주소.
CSDN 주소:http://blog.csdn.net/xiangyong_1521 / article / details / 78144382 곽 림:http://blog.csdn.net/guolinblog/article/details/17482165
지난 복습 을 통 해 볼 리 의 StringRequest 와 JSonRequest 의 기본 용법 에 대해 초보 적 으로 알 게 되 었 습 니 다. 이 글 은 인터넷 그림 을 불 러 오 는 용법 을 연습 합 니 다.
목차
ImageRequest 의 용법 ImageLoader 의 용법 NetworkImageView 의 용법 링크 1. ImageRequest 의 용법
笔记13 | 练习Volley(二)加载网络图片的三种方法_第1张图片
ImageRequest 도 Request 에서 계승 한 것 이기 때문에 사용 방법 도 기본적으로 같 습 니 다. 먼저 RequestQueue 대상 을 가 져 와 야 합 니 다. 다음 과 같은 방법 으로 얻 을 수 있 습 니 다.
 
  
  1. RequestQueue mQueue = Volley.newRequestQueue(context);  

然后去new出一个ImageRequest对象了,代码如下所示:

 
  
  1. ImageRequest imageRequest = new ImageRequest(  

  2.        "http://developer.android.com/images/home/aw_dac.png",  //

  3.        new Response.Listener<Bitmap>() {  //

  4.            @Override  

  5.            public void onResponse(Bitmap response) {  

  6.                imageView.setImageBitmap(response);  

  7.            }  

  8.        }, 0, 0,// ,0

  9. Config.RGB_565,// ARGB_8888

  10. new Response.ErrorListener() {  //

  11.            @Override  

  12.            public void onErrorResponse(VolleyError error) {  

  13.                imageView.setImageResource(R.drawable.default_image);  

  14.            }  

  15.        });

  16. mQueue.add(imageRequest);  // imageRequest mQueue


二. ImageLoader的用法

ImageLoader也可以用于加载网络上的图片,并且它的内部也是使用ImageRequest来实现的,不过ImageLoader明显要比ImageRequest更加高效,因为它不仅可以帮我们对图片进行缓存,还可以过滤掉重复的链接,避免重复发送请求。由于ImageLoader已经不是继承自Request的了,所以它的用法也和我们之前学到的内容有所不同,总结起来大致可以分为以下四步:

  1. 创建一个RequestQueue对象。

  2. 创建一个ImageLoader对象。

 
  
  1. ImageLoader imageLoader = new ImageLoader(mQueue, new ImageCache() {  

  2.    @Override  

  3.    public void putBitmap(String url, Bitmap bitmap) {  

  4.    }  

  5.    @Override  

  6.    public Bitmap getBitmap(String url) {  

  7.        return null;  

  8.    }  

  9. });  

  1. ImageListener 。

 
  
  1. ImageListener listener = ImageLoader.getImageListener(imageView,  // imageView

  2.        R.drawable.default_image, //

  3. R.drawable.failed_image);  //

  1. ImageLoader get() 。

 
  
  1. imageLoader.get("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg", //

  2. listener);  

 
  
  1. imageLoader.get("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg",  

  2.                listener, 200, 200);  

  13 |   Volley( )           _ 2

, BitmapCache ImageCache :

 
  
  1. public class BitmapCache implements ImageCache {  

  2.    private LruCache<String, Bitmap> mCache;  

  3.    public BitmapCache() {  

  4.        int maxSize = 10 * 1024 * 1024;  

  5.        mCache = new LruCache<String, Bitmap>(maxSize) {  

  6.            @Override  

  7.            protected int sizeOf(String key, Bitmap bitmap) {  

  8.                return bitmap.getRowBytes() * bitmap.getHeight();  

  9.            }  

  10.        };  

  11.    }  

  12.    @Override  

  13.    public Bitmap getBitmap(String url) {  

  14.        return mCache.get(url);  

  15.    }  

  16.    @Override  

  17.    public void putBitmap(String url, Bitmap bitmap) {  

  18.        mCache.put(url, bitmap);  

  19.    }    

  20. }

10M, :

 
  
  1. ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());  

BitmapCache , ImageLoader !


. NetworkImageView

NetworkImageView , ImageView , ImageView , 。NetworkImageView , :

  1. RequestQueue 。

  2. ImageLoader 。

  3. NetworkImageView 。

 
  
  1.  

  2.        android:id="@+id/network_image_view"  

  3.        android:layout_width="200dp"  

  4.        android:layout_height="200dp"  

  5.        android:layout_gravity="center_horizontal"  

  6.        />

 
  
  1. networkImageView.setDefaultImageResId(R.drawable.default_image);  //

  2. networkImageView.setErrorImageResId(R.drawable.failed_image);  //

  3. networkImageView.setImageUrl("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg",  //

  4.                BitmapCache); //

NetworkImageView , , , 。 , , ,NetworkImageView , , NetworkImageView 。 , , NetworkImageView layoutwidth layoutheight wrap_content , NetworkImageView , 。


.

> 11 | TextView

> 10 | static final

>[Android 9] wifi adb

>[Android 8] Zxing





좋은 웹페이지 즐겨찾기