Android 回收视图+;图像在某些设备上滞后
我有一个非常奇怪的bug,只有在HTC One上: 图像冻结的RecyclerView 我试过UniversalImageLoaderAndroid 回收视图+;图像在某些设备上滞后,android,android-recyclerview,picasso,universal-image-loader,android-glide,Android,Android Recyclerview,Picasso,Universal Image Loader,Android Glide,我有一个非常奇怪的bug,只有在HTC One上: 图像冻结的RecyclerView 我试过UniversalImageLoader mDisplayOptions = new DisplayImageOptions.Builder() .resetViewBeforeLoading(true) .cacheInMemory(true) .cacheOnDisc(true) .delayBef
mDisplayOptions = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true)
.cacheInMemory(true)
.cacheOnDisc(true)
.delayBeforeLoading(100)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.build();
和装载
ImageViewAware imageAware = new ImageViewAware(mainIcon);
ImageLoader.getInstance().cancelDisplayTask(imageAware);
ImageLoader.getInstance().displayImage(url, imageAware, mDisplayOptions);
列表滚动时暂停
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
ImageLoader.getInstance().resume();
} else {
ImageLoader.getInstance().pause();
}
我还试过毕加索、格莱德和阿奎里
Glide.clear(mainIcon);
glide.load(url)
.centerCrop()
.override(targetSize, targetSize) // target size - 200
.dontAnimate()
.skipMemoryCache(true)
.priority(Priority.LOW)
.into(mainIcon);
但在HTC设备上仍然落后(三星S4、LG L70和三星galaxy ace 1(!)在没有feezes的情况下工作)
有没有办法解决这个问题?确保启用了
StrictMode
来指出主应用程序线程上的网络和磁盘I/O。如果StrictMode
没有抱怨,请使用方法跟踪来尝试确定您在哪里花费时间。谢谢。我在主线程中没有任何网络连接。我认为,glide/picasso/UIL使用后台线程下载和解码位图。如果使用得当,它们确实可以。但是,您会说“带有图像的RecyclerView冻结”。在安卓系统中,当涉及到用户界面时,“冻结”通常意味着某些东西正在占用主应用程序线程。最可能的罪魁祸首是磁盘I/O和网络I/O。因此,请配置StrictMode
。也许您的特定HTC设备存在一些边缘情况,导致一些通常在后台线程上发生的工作在主应用程序线程上完成。