노트 13 | Volley (2) 네트워크 그림 을 불 러 오 는 세 가지 방법 연습
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 의 용법
ImageRequest 도 Request 에서 계승 한 것 이기 때문에 사용 방법 도 기본적으로 같 습 니 다. 먼저 RequestQueue 대상 을 가 져 와 야 합 니 다. 다음 과 같은 방법 으로 얻 을 수 있 습 니 다.
RequestQueue mQueue = Volley.newRequestQueue(context);
然后去new出一个ImageRequest对象了,代码如下所示:
ImageRequest imageRequest = new ImageRequest(
"http://developer.android.com/images/home/aw_dac.png", //
new Response.Listener<Bitmap>() { //
@Override
public void onResponse(Bitmap response) {
imageView.setImageBitmap(response);
}
}, 0, 0,// ,0
Config.RGB_565,// ARGB_8888
new Response.ErrorListener() { //
@Override
public void onErrorResponse(VolleyError error) {
imageView.setImageResource(R.drawable.default_image);
}
});
mQueue.add(imageRequest); // imageRequest mQueue
二. ImageLoader的用法
ImageLoader也可以用于加载网络上的图片,并且它的内部也是使用ImageRequest来实现的,不过ImageLoader明显要比ImageRequest更加高效,因为它不仅可以帮我们对图片进行缓存,还可以过滤掉重复的链接,避免重复发送请求。由于ImageLoader已经不是继承自Request的了,所以它的用法也和我们之前学到的内容有所不同,总结起来大致可以分为以下四步:
创建一个RequestQueue对象。
创建一个ImageLoader对象。
ImageLoader imageLoader = new ImageLoader(mQueue, new ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
}
@Override
public Bitmap getBitmap(String url) {
return null;
}
});
ImageListener 。
ImageListener listener = ImageLoader.getImageListener(imageView, // imageView
R.drawable.default_image, //
R.drawable.failed_image); //
ImageLoader get() 。
imageLoader.get("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg", //
listener);
:
imageLoader.get("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg",
listener, 200, 200);
:
, BitmapCache ImageCache :
public class BitmapCache implements ImageCache {
private LruCache<String, Bitmap> mCache;
public BitmapCache() {
int maxSize = 10 * 1024 * 1024;
mCache = new LruCache<String, Bitmap>(maxSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
return bitmap.getRowBytes() * bitmap.getHeight();
}
};
}
@Override
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
}
10M, :
ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());
BitmapCache , ImageLoader !
. NetworkImageView
NetworkImageView , ImageView , ImageView , 。NetworkImageView , :
RequestQueue 。
ImageLoader 。
NetworkImageView 。
android:id="@+id/network_image_view"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
/>
。
。
networkImageView.setDefaultImageResId(R.drawable.default_image); //
networkImageView.setErrorImageResId(R.drawable.failed_image); //
networkImageView.setImageUrl("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg", //
BitmapCache); //
NetworkImageView , , , 。 , , ,NetworkImageView , , NetworkImageView 。 , , NetworkImageView layoutwidth layoutheight wrap_content , NetworkImageView , 。
.
> 11 | TextView
> 10 | static final
>[Android 9] wifi adb
>[Android 8] Zxing
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BeanUtils에서 맵을 개체로 직접 캡슐화폼에서 제출한 데이터를 대상에 봉인하는 것이 필요합니다 대상order 프론트 데스크톱 페이지:name 속성과 대상 속성이 일일이 대응합니다 웹 층 봉인 프론트 데스크톱의 데이터를 키 값 대 맵에 저장합니다 Map m...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.