经过这么长时间了,发现这部分的处理又有了一些新的方面的进展。
除了用volley带的imageloader来进行网络图片的加载意外,还有一个更加方面好用的图片缓存加载机制。glide。
关于glide的使用,我也进行了一个转载: Glide图片加载缓存 。
大家也可以进行一下参考。
import android.graphics.Bitmap; import android.widget.ImageView; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.ImageRequest; import com.android.volley.toolbox.NetworkImageView; import com.activity.MyApplication; /** * Created by Administrator on 2016/9/12 0012. */ public class ImageLoaderUtil { /* * 通过ImageRequest来显示网络图片 * */ public static void setImageRequest(String url, final ImageView imageView) { ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap bitmap) { imageView.setImageBitmap(bitmap); } }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { imageView.setBackgroundResource(R.mipmap.ic_launcher); } }); MyApplication.getHttpQueue().add(imageRequest); } /* * 通过ImageLoader来显示网络图片 * */ public static void setImageLoader(String url, ImageView imageView, int defaultImageResId, int errorImageResId) { ImageLoader loader = new ImageLoader(MyApplication.getHttpQueue(), new ImageLoader.ImageCache() { @Override public Bitmap getBitmap(String s) { return null; } @Override public void putBitmap(String s, Bitmap bitmap) { } }); ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(imageView, defaultImageResId, errorImageResId); loader.get(url, imageListener); } /* * 通过Volley的NetWorkImageView来显示网络图片 * */ public static void setNetWorkImageView(String url, NetworkImageView netWorkImageView, int defaultImageResId, int errorImageResId) { ImageLoader loader = new ImageLoader(MyApplication.getHttpQueue(), new ImageLoader.ImageCache() { @Override public Bitmap getBitmap(String s) { return null; } @Override public void putBitmap(String s, Bitmap bitmap) { } }); netWorkImageView.setDefaultImageResId(defaultImageResId); netWorkImageView.setErrorImageResId(errorImageResId); netWorkImageView.setImageUrl(url, loader); } }
上述包含了volley的iamgloader请求网络url数据,还有iamgeRequest和N额头WorkImageView,前两种本人已经经过测试,第三种我也没有进行使用,应该够大家使用了。
然后将queue的volley请求队列进行一个全局的封装。就可以进行使用了。如下:
public class MyApplication extends Application { // 建立请求队列 public static RequestQueue queue; @Override public void onCreate() { super.onCreate(); queue = Volley.newRequestQueue(getApplicationContext()); } public static RequestQueue getHttpQueue() { return queue; } }