所以我检查过" parsedPhotoStrings"的大小。并且它明显大于1.但是,只有一个图像显示以下代码。我不知道发生了什么事。
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl = createPlacePhotosUrl(parsedPhotoStrings.get(i));
ImageView imageView = new ImageView(MarkerActivity.this);
Picasso.with(MarkerActivity.this).load(photoUrl).resize(width, 0).into(imageView);
photoLayout.addView(imageView);
}
编辑:
正在显示多张照片!我忽视了布局的方向。但是,即使在.netWorkPolicy(NetWorkPolicy_CLEAR_CACHE)和.memoryPolicy(MemoryPolicy.CLEAR_CACHE)之后,缓存仍然没有清除
编辑:
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl = createPlacePhotosUrl(parsedPhotoStrings.get(i));
ImageView imageView = new ImageView(MarkerActivity.this);
photoLayout.addView(imageView);
Picasso.with(MarkerActivity.this).load(photoUrl)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.resize(width, 0)
.into(imageView);
imageView.setImageResource(0);
imageView.setImageDrawable(null);
Picasso.with(MarkerActivity.this).invalidate(photoUrl);
}
我已经尝试了很多东西来清除缓存。仍然没有任何工作。任何帮助表示赞赏!
答案 0 :(得分:1)
只需撤销订单即可。
添加ImageView
然后加载图片:
将此更改为
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl = createPlacePhotosUrl(parsedPhotoStrings.get(i));
ImageView imageView = new ImageView(MarkerActivity.this);
Picasso.with(MarkerActivity.this).load(photoUrl).resize(width, 0).into(imageView);
photoLayout.addView(imageView);
}
这个
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl = createPlacePhotosUrl(parsedPhotoStrings.get(i));
ImageView imageView = new ImageView(MarkerActivity.this);
photoLayout.addView(imageView);
Picasso.with(MarkerActivity.this).load(photoUrl).memoryPolicy(MemoryPolicy.NO_CACHE).networkPolicy(NetworkPolicy.NO_CACHE).resize(width, 0).into(imageView);
}
答案 1 :(得分:0)
尝试使用.memoryPolicy(MemoryPolicy.NO_CACHE)
Picasso.with(MarkerActivity.this).load(photoUrl).resize(width, 0).memoryPolicy(MemoryPolicy.NO_CACHE).into(imageView);
示例代码
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl = createPlacePhotosUrl(parsedPhotoStrings.get(i));
ImageView imageView = new ImageView(MarkerActivity.this);
photoLayout.addView(imageView);
Picasso.with(MarkerActivity.this).load(photoUrl).resize(width, 0).memoryPolicy(MemoryPolicy.NO_CACHE).into(imageView);
}
答案 2 :(得分:0)
这是由于缓存。你必须实现这个: -
Picasso.with(YourActivity.this)
.load(childjson.getString("your_string"))
.networkPolicy(NetworkPolicy.NO_CACHE)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.skipMemoryCache()
.into(yourImagePreview);
并确保将build.gradle中picasso的依赖关系更改为: -
compile "com.squareup.picasso:picasso:2.5.2"
这将不支持内存缓存。 快乐的编码!
答案 3 :(得分:0)
首先检查图像是否缓存ht eurl,如果是,请将代码添加到invalidate()url.This将删除以前的缓存。
Picasso.with(this).invalidate(url);
第二次检查网络缓存机制。此代码不会对图像进行缓存
Picasso.networkPolicy(NetworkUtils.isConnected(this) ?
NetworkPolicy.NO_CACHE : NetworkPolicy.OFFLINE)
所以你的代码应该像
for (int i = 0; i < parsedPhotoStrings.size(); i++) {
String photoUrl =createPlacePhotosUrl(parsedPhotoStrings.get(i));
Picasso.with(this).invalidate(url);
ImageView imageView = new ImageView(MarkerActivity.this);
photoLayout.addView(imageView);
Picasso.with(MarkerActivity.this)
.load(photoUrl)
.networkPolicy(NetworkUtils.isConnected(this) ?
NetworkPolicy.NO_CACHE : NetworkPolicy.OFFLINE)
.memoryPolicy(MemoryPolicy.NO_CACHE);
.resize(width, 0)
.into(imageView);
}
另外,要支持这些代码,您需要使用picasso 2.5。+
compile 'com.squareup.picasso:picasso:2.5.2'