标签:android style blog http color java 使用 art
如果使用volley 获取 网络图片 最好还是用 Volley 提供的NetworkImageView类, 可以很轻松的 完成工作, 而且他可以设置缓存, lru 和 sd卡的缓存。一些都封装好了。
NetworkImageView类的具体使用方式如下:
<FrameLayout
android:id="@+id/flImageContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/gvImages"
android:layout_margin="30dp" >
<com.android.volley.toolbox.NetworkImageView
android:id="@+id/nivTestView"
android:layout_width="100dp"
android:layout_height="100dp" >
</com.android.volley.toolbox.NetworkImageView>
</FrameLayout>
networkImageView = (NetworkImageView) findViewById(R.id.nivTestView); ..找到对应的 NetworkImageview mQueue = Volley.newRequestQueue(this); //老样子 ,生成 LruImageCache lruImageCache = LruImageCache.instance(); // 新加的, 这是一个实现了ImageCache 接口的缓存类 ,使用Lru ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache); //主要的联网获取图片工作都交给了他 networkImageView.setDefaultImageResId(R.drawable.ic_launcher); //默认加载图片 networkImageView.setErrorImageResId(R.drawable.ic_launcher); //错误的图片 networkImageView.setImageUrl(URLS[1], imageLoader);
所以在利用NetworkImageView之前,我们还需要先去实现这个接口,而Volley推荐的也就是LruCache,代码中的LruImageCache实现如下:
package com.lms.volleydemo;
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;
import com.android.volley.toolbox.ImageLoader.ImageCache;
public class LruImageCache implements ImageCache{
private static LruCache<String, Bitmap> mMemoryCache;
private static LruImageCache lruImageCache;
private LruImageCache(){
// Get the Max available memory
int maxMemory = (int) Runtime.getRuntime().maxMemory();
int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize){
@Override
protected int sizeOf(String key, Bitmap bitmap){
return bitmap.getRowBytes() * bitmap.getHeight();
}
};
}
public static LruImageCache instance(){
if(lruImageCache == null){
lruImageCache = new LruImageCache();
}
return lruImageCache;
}
@Override
public Bitmap getBitmap(String arg0) {
return mMemoryCache.get(arg0);
}
@Override
public void putBitmap(String arg0, Bitmap arg1) {
if(getBitmap(arg0) == null){
mMemoryCache.put(arg0, arg1);
}
}
}
2 然后开始合体了
ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache);
这里面详细 http://blog.csdn.net/linmiansheng/article/details/21293699
安卓新的联网方式 Volley的使用(2),布布扣,bubuko.com
标签:android style blog http color java 使用 art
原文地址:http://www.cnblogs.com/zey23/p/3885671.html