我正在使用Android-Universal-Image-Loader库将远程图片加载到GridView单元格中的ImageView.
这里是imageLoader配置:
new ImageLoaderConfiguration.Builder(Config.context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCacheSize(20 * 1024 * 1024) // 20 Mb
.memoryCache(new LruMemoryCache(20 * 1024 * 1024))
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.enableLogging() // Not necessary in common
.build();
Run Code Online (Sandbox Code Playgroud)
和显示选项:
new DisplayImageOptions.Builder()
.showStubImage(R.drawable.blank)
.showImageForEmptyUri(R.drawable.no_image)
.build();
Run Code Online (Sandbox Code Playgroud)
问题:一旦使用gridview的活动开始一切正常并且图像出现在单元格中,然后我向下滚动网格(我在网格中有大约20个项目),其他图像正确加载.但是一旦我滚动顶部已经加载的图像再次开始加载.
在向上和向下滚动几次后,网格会保存所有图像,并且它们不会再消失.
有人遇到任何类似的问题,或者你知道我做错了什么.感谢帮助.
ADDED:这是我的适配器中的getView方法:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
if ( view == null ) {
view = Config.context.getLayoutInflater().inflate(R.layout.featured, null);
holder = new ViewHolder();
holder.titleText = (TextView) view.findViewById(R.id.featured_title);
holder.priceText …Run Code Online (Sandbox Code Playgroud) 我成功地将通用图像加载程序库(1.8.3版本)应用到我的应用程序,我正在尝试调整图像大小,然后在gridview项目中显示它(因为有时图像太大而无法将其缓存在内存中.)
这是我正在尝试的:
...
BitmapFactory.Options resizeOptions = new BitmapFactory.Options();
resizeOptions.inSampleSize = 3; // decrease size 3 times
resizeOptions.inScaled = true;
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.blank)
.showImageForEmptyUri(R.drawable.no_image)
.cacheInMemory()
.cacheOnDisc()
.decodingOptions(resizeOptions)
.build();
...
Run Code Online (Sandbox Code Playgroud)
由于某种原因,此代码不会使图像缩小3倍.
有人有更好的方法来按照指定的密度调整图像大小吗?