相关疑难解决方法(0)

使用Picasso和自定义磁盘缓存

Volley库中,NetworkImageView类需要ImageLoader 通过在ImageCache 实现中搜索所有图像请求来处理所有图像请求,用户可以自由选择缓存应该如何工作,图像的位置和名称.

我正在切换Volley 到Retrofit,我决定尝试的图像Picasso.

使用前一个库,我在包含图像URL的每个项目中都有一个String参数,然后我使用myNetworkImageView.setImageUrl(item.getURL())它,它能够确定图像是否缓存在磁盘上.如果图像存在于缓存文件夹中,则加载图像,否则下载并加载图像.

我希望能够对Picasso做同样的事情,是否可以使用PicassoAPI或我应该自己编写这样的功能?

我想将图像下载到文件夹(缓存文件夹),并Picasso.with(mContext).load(File downloadedimage)在完成时使用.这是正确的方法还是有任何最佳做法?

android caching picasso

23
推荐指数
2
解决办法
3万
查看次数

Android Picasso配置LruCache大小

我在我的项目中使用趋势毕加索,但我已经倾倒了堆,它看起来像这样.现在昨天它给了我48M LruCache用于毕加索.

我怎么能指定它的大小?

注意:我加载的图像显然很大.

如果有人提出fit()或者centerCrop(),我已经知道这些功能会减少图像尺寸,对吗?但有时我必须ListView在全视图中显示小图像.

现在,这些功能是否缓存缩小的图像?

在此输入图像描述

android picasso

13
推荐指数
1
解决办法
2万
查看次数

UIL,Picasso - 适配器中的图像在停止滚动时始终重新加载

我有ListView文本和来自互联网的大图像.我的图片项目适合宽度和wrap_content高度.
我尝试用UIL&显示背景图像Picasso.它们都可以工作但是当我停止滚动时图像总是重新加载,它使ListView闪烁
它看起来像这样:

在此输入图像描述

当我停止滚动时(我向下滚动然后向上滚动),您可以看到它重新加载下载和缓存的图像.
我怎样才能防止这种情况发生?

 <ImageView android:id="@+id/imgFeed"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scaleType="centerCrop"/>

 // UIL
 options = new DisplayImageOptions.Builder()
 .showImageOnLoading(defaultImage)
 .showImageOnFail(defaultImage)
 .showImageForEmptyUri(defaultImage)
 .resetViewBeforeLoading(false)
 .cacheOnDisk(true).delayBeforeLoading(0)
 .displayer(new  FadeInBitmapDisplayer(200)).cacheInMemory(true).imageScaleType(ImageScaleType.EXACTLY_STRETCHED).build();

 ImageAware imageAware = new ImageViewAware(viewHolder.imgFeed, false); 
 ImageLoader.getInstance().displayImage(item.getPhotoUrl(), imageAware, options);

// Picasso
 Picasso.with(getContext())
                        .load(item.getPhotoUrl())
                        .placeholder(R.drawable.place_holder_big)
                        .resize(screenWidth, 0) //set max width
                        .into(viewHolder.imgFeed);
Run Code Online (Sandbox Code Playgroud)

对于UIL,我在这个问题上尝试了很多方法,但它们根本不适用于我.

更新:似乎我遇到了像这个问题的内存缓存问题.但是我该如何解决这个问题呢?看看Facebook应用程序,他们做得非常好.所有图像都有不同的尺寸,适合的宽度,非常平滑的滚动,无需重新加载图像.他们怎么能这样做?

android android-listview universal-image-loader picasso

11
推荐指数
1
解决办法
2762
查看次数