第一次接触Glide 框架感觉它挺好用的 ,它的用方法也很简单 三两行就搞定了网络加载图片
第三方库Glide地址:https://github.com/bumptech/glide
dependencies { compile 'com.github.bumptech.glide:glide:3.5.2' compile 'com.android.support:support-v4:22.0.0' }
当时在一台手机测试的时候发现图片加载的地址能下载图片下来,在显示的时候就显示不了于是找了下原因:
GlideUrl glideUrl = new GlideUrl(uir, new LazyHeaders.Builder() .addHeader("Cookie", "JSESSIONID=" + JSESSIONID) .build()); Log.v(TAG, "position:" + position); if (Util.isOnMainThread()) { if (position == 0) { Log.v(TAG, "position:" + position + " --Priority.LOW"); Glide.with(context).load(glideUrl).dontAnimate().placeholder(R.drawable.profileicon).priority(Priority.HIGH).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } else if (position == 1) { Glide.with(context).load(glideUrl).dontAnimate().placeholder(R.drawable.profileicon).priority(Priority.NORMAL).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } else { Log.v(TAG, "position:" + position + " --Priority.HIGH"); Glide.with(context).load(glideUrl).dontAnimate().placeholder(R.drawable.profileicon).priority(Priority.LOW).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } } else { Log.v("cao", "Glide 不在主线程上执行!!!!!"); }
于是添加了这么一句 :skipMemoryCache(false)
if (Util.isOnMainThread()) { if (position == 0) { Log.v(TAG, "position:" + position + " --Priority.LOW"); Glide.with(context).load(glideUrl).dontAnimate().skipMemoryCache(false).placeholder(R.drawable.profileicon).priority(Priority.HIGH).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } else if (position == 1) { Glide.with(context).load(glideUrl).dontAnimate().skipMemoryCache(false).placeholder(R.drawable.profileicon).priority(Priority.NORMAL).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } else { Log.v(TAG, "position:" + position + " --Priority.HIGH"); Glide.with(context).load(glideUrl).dontAnimate().skipMemoryCache(false).placeholder(R.drawable.profileicon).priority(Priority.LOW).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.circleImageView); } } else { Log.v("cao", "Glide 不在主线程上执行!!!!!"); }果然奏效了 ,原来是没考虑到手机内存不足!~