标签: universal-image-loader

在图象的黑背景用univerisal图象装载者装载了

如下所示.第一张图片是http://goldentrail.towardstech.com/assets/images/membersimage/buttons/eat.png链接的默认图片.而它下面的第二个图像是使用uil加载的图像

这是imageloader配置

    File cacheDir = StorageUtils.getCacheDirectory(context);
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
            .memoryCacheExtraOptions(480, 800) // default = device screen dimensions
            .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75)
            .taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
            .taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR)
            .threadPoolSize(3) // default
            .threadPriority(Thread.NORM_PRIORITY - 1) // default
            .tasksProcessingOrder(QueueProcessingType.FIFO) // default
            .denyCacheImageMultipleSizesInMemory()
            .memoryCache(new LruMemoryCache(2 * 1024 * 1024))
            .memoryCacheSize(2 * 1024 * 1024)
            .discCache(new UnlimitedDiscCache(cacheDir)) // default
            .discCacheSize(50 * 1024 * 1024)
            .discCacheFileCount(100)
            .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
            .imageDownloader(new BaseImageDownloader(context)) // default
            .imageDecoder(new BaseImageDecoder()) // default
            .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
            .enableLogging()
            .build();
Run Code Online (Sandbox Code Playgroud)

这是展示选项

DisplayImageOptions options …
Run Code Online (Sandbox Code Playgroud)

android universal-image-loader

8
推荐指数
1
解决办法
2546
查看次数

通用图像加载器 - 手动清除缓存

我正在使用Universal Image Loader在listviews中显示我的应用程序中的图像.我正在使用,UnlimitedDiscCache因为根据文档,这是最快的缓存机制.

但是,我想清除我的应用程序关闭时的光盘缓存(例如,在onStop()),但只应删除超过给定限制的最旧的缓存文件(如同TotalSizeLimitedDiscCache).

我知道,ImageLoader.clearDiscCache()但在我的情况下,这清除了完整的缓存,因为我UnlimitedDiscCache以前使用...

因此,当用户加载和滚动列表视图时,我希望拥有最快的缓存机制,并在用户不再与应用程序交互时清除慢速缓存.

我有什么想法可以达到这个目的吗?

java android universal-image-loader

8
推荐指数
1
解决办法
3127
查看次数

Android-Universal-Image-Loader不会在gridview中滚动加载的图像

我正在使用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)

android image loader universal universal-image-loader

8
推荐指数
1
解决办法
7628
查看次数

通用映像加载器:我可以使用缓存但是还可以刷新它吗?

我正在加载动态生成的图像,所以我总是希望它们是最新的.但是它们需要时间来加载所以我也希望显示一个缓存版本,而更新后的版本不会出现.如何使用Universal Image Loader执行此操作?

更具体地说,当我调用"displayImage"时,我希望它执行以下操作:

  1. 如果存在缓存的图像,则立即显示.
  2. 无论如何,从给定的URL开始下载.
  3. 图像加载完成后,将其显示在替换缓存图像的视图中.
  4. 更新缓存.

android caching universal-image-loader

8
推荐指数
1
解决办法
8257
查看次数

通用图像加载器gridview在notifyDataSetChanged调用后闪烁

我正在使用UIL与此配置从FILE加载图像:

BitmapDisplayer displayer = new FadeInBitmapDisplayer(500) {

        @Override
        public Bitmap display(Bitmap bitmap, ImageView imageView,
                LoadedFrom loadedFrom) {
            if (loadedFrom != LoadedFrom.MEMORY_CACHE) {
                return super.display(bitmap, imageView, loadedFrom);
            } else {
                imageView.setImageBitmap(bitmap);
                return bitmap;
            }
        }

    };
    DisplayImageOptions options = new DisplayImageOptions.Builder()
            .cacheInMemory(true).resetViewBeforeLoading(true)
            .showImageForEmptyUri(R.drawable.thumbnail_no_image)
            .showImageOnFail(R.drawable.thumbnail_no_image)
            .displayer(displayer).build();
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
            context).defaultDisplayImageOptions(options)
            .memoryCacheSize(2 * 1024 * 1024).build();
    sLoader.init(config);
Run Code Online (Sandbox Code Playgroud)

GridView在我考虑选择任何项目后,我需要实现选择,我打电话notifyDataSetChanged让我的selectionOverlay可见.在此调用之后,所有图像开始重新加载,这导致GridView闪烁.我怎么能避免这个?

android gridview adapter universal-image-loader

8
推荐指数
1
解决办法
1784
查看次数

使用Universal Image Loader在Android网格视图中滚动时重复图像

我正在尝试使用以下代码在gridview上使用Universal Image Loader从Internet加载图像.

public View getView(int position, View converView, ViewGroup parent) {
        Log.v("Description", "Description is " + position);
        ViewHolder mVHolder;
        if (converView == null) {
            LayoutInflater vi = (LayoutInflater) conted.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            converView = vi.inflate(R.layout.customgrid, null);
            mVHolder = new ViewHolder();
            mVHolder.mImageView = (ImageView) converView
                    .findViewById(R.id.imgview);
            mVHolder.mTextView1 = (TextView) converView
                    .findViewById(R.id.textView1);
            mVHolder.mTextView2 = (TextView) converView
                    .findViewById(R.id.textView2);
            mVHolder.mTextView3 = (TextView) converView
                    .findViewById(R.id.textView3);

            converView.setTag(mVHolder);
        } else {
            mVHolder = (ViewHolder) converView.getTag();
        }
        // mVHolder.mImageView.setImageResource(mThumbIds[position]);
        // mVHolder.mImageView.setImageDrawable(LoadImageFromURL(
        // mThumbIds[position]));
        imageLoader.displayImage(mThumbIds[position],mVHolder.mImageView,options, animationListener);
        Log.v("Names",NAMES[position] + STATES[position] + CONSTITUENCY[position]); …
Run Code Online (Sandbox Code Playgroud)

android gridview image universal-image-loader

8
推荐指数
1
解决办法
3756
查看次数

使用Universal Image Loader的FileNotFoundException

这个问题是关于这个流行的Android库,Android的通用图像加载器:https://github.com/nostra13/Android-Universal-Image-Loader

  1. 我确定添加了WRITE_EXTERNAL_STORAGE.
  2. 我启用了内存和磁盘缓存
  3. 我使用UnlimitedDiscCache进行磁盘缓存
  4. 我正在构建Android 2.2 SDK.当我在Android 4.1.2 Nexus S设备上测试应用程序时,会发现例外情况.
  5. 对于我的大多数图像,加载是平滑和精细的.但是,对于某些图像,我总是得到相同的例外.以下是一个例子.

图片网址:http://i10.topit.me/l046/10046137034b1c0db0.jpg

回溯:

01-14 00:24:42.125: 

ERROR/ImageLoader(1671): http://i10.topit.me/l046/10046137034b1c0db0.jpg

java.io.FileNotFoundException: http://i10.topit.me/l046/10046137034b1c0db0.jpg

at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)

at com.nostra13.universalimageloader.core.download.URLConnectionImageDownloader.getStreamFromNetwork(URLConnectionImageDownloader.java:40)

at com.nostra13.universalimageloader.core.download.ImageDownloader.getStream(ImageDownloader.java:27)

at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.saveImageOnDisc(LoadAndDisplayImageTask.java:296)

at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:204)

at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:128)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
Run Code Online (Sandbox Code Playgroud)

请帮忙.

java android universal-image-loader

7
推荐指数
1
解决办法
7528
查看次数

通用图像加载器保持比率

我有一个宽度为:match_parent和height:wrap_content的imageView.我希望图像具有全宽并保持高度的比例.

我按照这个链接(https://github.com/nostra13/Android-Universal-Image-Loader/pull/62)说谁在我的imageView上设置adjustviewbounds和center_crop并将imageScaleType设置为ImageScaleType.EXACTLY_STRETCHED.

所以我这样做:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
            .cacheInMemory()
            .cacheOnDisc()
            .showImageForEmptyUri(R.drawable.cache_waiting)
            .showImageOnFail(R.drawable.cache_waiting)
            .showStubImage(R.drawable.cache_waiting)
            .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
            .build();

            setAdjustViewBounds(true);
            setScaleType(ScaleType.CENTER_CROP);
            ImageLoader.getInstance().displayImage(img.getUrl(), this,defaultOptions);
Run Code Online (Sandbox Code Playgroud)

使用此代码,大多数ImageView都是白色的.logcat告诉我位图太大(2560,1120).如何保持图像与UIL的比例.

谢谢,

android universal-image-loader

7
推荐指数
1
解决办法
6650
查看次数

如何在Universal Image Loader中设置自定义下载程序?

如何设置我的自定义下载器?我看不到一个Builder方法来更改下载器类.

我想使用Google HTTP Client库,我准备好了一个子类,如下所示:

import com.nostra13.universalimageloader.core.download.BaseImageDownloader;

public class GoogleHttpDownloader extends BaseImageDownloader {

    //constructors, etc...
    @Override
    protected InputStream getStreamFromNetwork(String imageUri, Object extra)
        throws IOException {
        //new instancce of client, connect, return stream
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如何使用UIL?

谢谢.

android universal-image-loader

7
推荐指数
1
解决办法
1666
查看次数

致命信号11(SIGSEGV)位于0x00000000(代码= 1),线程27830(ple.myfragexample) - 仅在Android 4.1.2上

我在我的应用程序中使用FragmentActivity和几个片段.这些片段中的每一个都包含图像和一些带动画的文本.当用户在屏幕上滑动时,片段会发生变化.

现在我已经开始研究10天了,并且已经在不同设备上使用不同的Android版本测试了FragmentActivity.我过去10天坚持这个原因的原因是我遇到了崩溃

Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 27830 (ple.myfragexample)
Run Code Online (Sandbox Code Playgroud)

现在,只有当我在Android 4.1.2上测试FragmentActivity时才会出现此错误.它可以在Android 2.3.3,4.0.3,4.0.4,4.2甚至2.2上正常运行.错误日志如下:

08-07 14:34:13.843: D/dalvikvm(27830): GC_FOR_ALLOC freed 3845K, 14% free 35407K/40903K, paused 4ms, total 14ms
08-07 14:34:13.848: I/dalvikvm-heap(27830): Grow heap (frag case) to 39.590MB for 3932176-byte allocation
08-07 14:34:13.878: D/dalvikvm(27830): GC_CONCURRENT freed 3K, 5% free 39244K/40903K, paused 11ms+4ms, total 30ms
08-07 14:34:13.928: D/dalvikvm(27830): GC_FOR_ALLOC freed 0K, 5% free 39244K/40903K, paused 16ms, total 16ms
08-07 14:34:13.928: I/dalvikvm-heap(27830): Forcing collection of SoftReferences for 8847376-byte allocation
08-07 14:34:13.953: D/dalvikvm(27830): GC_BEFORE_OOM …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory android-fragments universal-image-loader android-4.2-jelly-bean

7
推荐指数
1
解决办法
3183
查看次数