- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 nostra 的 Universal Image Loader ,我正在使用它在 gridview 上加载图像,大小为 100 * 100,但是当在 GridView 中快速滚动时会引发异常(仅用于演示,我在网格适配器上有 13000 个图像),尽管库处理异常并且用户没有收到通知,以下是异常(exception)情况
06-21 11:13:17.748: E/ImageLoader(2070): No such file or directory
06-21 11:13:17.748: E/ImageLoader(2070): java.io.FileNotFoundException: No such file or directory
06-21 11:13:17.748: E/ImageLoader(2070): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:145)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:612)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:607)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:536)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openInputStream(ContentResolver.java:371)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromContent(BaseImageDownloader.java:177)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:88)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:290)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:273)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:229)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:135)
06-21 11:13:17.748: E/ImageLoader(2070): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-21 11:13:17.748: E/ImageLoader(2070): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-21 11:13:17.748: E/ImageLoader(2070): at java.lang.Thread.run(Thread.java:856)
代码是:
添加了 WRITE_EXTERNAL_STORAGE
内存和磁盘缓存
用于磁盘缓存的 UnlimitedDiskCache
使用最新的库 1.9.2
也就是说,库崩溃了,无法再加载图像并重复所有以前的图像,在这种情况下如何重置库并重新开始,以防发生这种崩溃?
下面是ImageLoader的配置
String cacheDirectory=context.getCacheDir()+ImageLoaderConstants.IMAGE_CACHE_DIRECTOY_PATH;
File cacheDir=new File(cacheDirectory);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.delayBeforeLoading(0)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new SimpleBitmapDisplayer())
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5)
.threadPriority(Thread.NORM_PRIORITY)
.denyCacheImageMultipleSizesInMemory()
.memoryCacheExtraOptions(1280, 720)
.diskCacheExtraOptions(1280, 720,null)
.memoryCache(new LruMemoryCache(5*1024*1024))
.diskCache(new UnlimitedDiscCache(cacheDir))
.defaultDisplayImageOptions(options)
.build();
更新:
Adapter 代码没什么,
imageLoader.displayImage(uriPath, holder.imgThumbnail);
我拥有在 UIL GitHub 的使用部分中定义的所有配置
最佳答案
我最喜欢的图书馆之一,
首先请添加
DisplayImageOptions options = new DisplayImageOptions.Builder()
.delayBeforeLoading(0)
.cacheInMemory(true)
.cacheOnDisk(true)
.resetViewBeforeLoading(true) // add this line
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new SimpleBitmapDisplayer())
.build();
通过添加此行图像将不会在您滚动时反射。
第二件事是,检查下面的链接
https://github.com/nostra13/Android-Universal-Image-Loader#useful-info
在该链接中阅读第 8 点。当用户滚动列表/ GridView 时停止加载。
boolean pauseOnScroll = false; // or true
boolean pauseOnFling = true; // or false
PauseOnScrollListener listener = new PauseOnScrollListener(imageLoader, pauseOnScroll, pauseOnFling);
listView.setOnScrollListener(listener);
注意:以上代码只是建议,不知道能不能解决你的问题。
关于android - 快速滚动时 Universal Image Loader 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18692199/
我正在使用 webpack 开始我的学习之路,但遇到了一个问题,我认为这是由 extract-loader 引起的。 .当webpack抓取我的HTML文件时,似乎无法正常编译,在使用import.m
我正在使用 tomcat 8,在 tomcat-home/config/catalina.properties ,有关于的部分 common.loader, server.loader and sha
在使用 import 语句时,我对区分 sass-loader 和 css-loader 有点困惑。据我所知,css loader resolve import statment(@import) 和
我的 webpack 加载器数组中有这个加载器: { test: /\.scss$/, exclude: /node_modules/, loaders: ExtractTextPlugin('sty
我对 url-loader 、 file-loader 和 image-loader 感到很困惑。谁能解释一下 url-loader 、 file-loader 和 image-loader 的区别是
我有 page.css @imports index.css。 page.css 和 index.css 都有 display: flex Webpack.config.js 包含: module:
我在 webpack 中使用生产模式构建的多入口点最终 bundle 中导出的多入口编译 js 文件始终包含加载器内容。如何消除它们以及为什么包含它们? 重现 git clone https://gi
模板加载器找到模板但未加载模板 TemplateDoesNotExist at /cardpayment/ cardpayment.html Request Method: GET Reque
当我尝试运行 gradle tR (tomcatRun) 时出现此错误 A child container failed during start java.util.concurrent.Execu
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectna
我计划将 Webpack 用于一个项目,并且我正在使用 Html-loader + file-loader 设置我的工作流程,以获取带有图像动态 src 的生产 html 文件,正如 Colt Ste
我有一个巨大的 csv 文件,其中包含数百万条记录,我想使用 python 脚本将它加载到 Netezza 数据库中。我尝试了简单的插入查询,但速度非常非常慢。可以指出一些示例 python 脚本或一
我想将 ts-loader 与 babel-polyfill 一起使用,但不使用 babel-loader。但是当我尝试构建该项目时,我收到了此错误。谁能告诉我我缺少什么。 ERROR in ./sr
下面是我的 webpack.config.js 和 package.json module.exports = { entry: "./entry.js", output: { fi
我在两台不同的 PC 上遇到了一个问题。对于我的项目,我为开发安装了以下依赖项:(webpack webpack-cli @babel/core @babel/preset-env @babel/pr
模板文件保存在app目录下,但渲染时引发TemplateDoesNotExist异常: 模板加载器事后分析如下: Django 尝试按以下顺序加载这些模板: Using loader django.t
PHPUnit 手册说: If you point the PHPUnit command-line test runner to a directory it will look for *Test
我正在开发一个需要 html 的角度应用程序要提取为纯 HTML 文件的文件,同时应检查任何 要求这些图像(作为 Assets )。另外,图片是基于根路径的(所以 /images/something.
我们在 sql 加载器中遇到了问题。我们正在尝试将一个大约 46 亿行(近 340 GB)的数据文件加载到 2 个 oracle 表中,基于一些使用 Sql Loader 的条件。但是在加载了 42
我将 CSS 模块与 webpack css-loader 一起使用,然后将它们与 mini-css-extract-plugin 捆绑在一起。 这是我的配置的样子: { test: /\.c
我是一名优秀的程序员,十分优秀!