解决Fresco缓存查询异常问题

This commit is contained in:
kehaoyuan
2018-08-10 10:13:05 +08:00
parent d1245a9a1e
commit 138c5bb4c2
4 changed files with 22 additions and 11 deletions

View File

@ -165,6 +165,7 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
int position = mViewPager.getCurrentItem();
Object object = mViewPager.findViewWithTag(position);
if (object != null) {
mProgressHint.setWidth(mProgressHint.getWidth());
RelativeLayout view = (RelativeLayout) object;
final ZoomSimpleDraweeView draweeView = view.findViewById(R.id.viewimage_iv_show);
draweeView.getHierarchy().setProgressBarImage(new EmptyDrawable(progress -> {
@ -213,12 +214,17 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
mSlideLine.setLayoutParams(rparams);
mProgressHint.setVisibility(View.GONE);
} else {
ImageInfoEntity imageInfoEntity = mImageInfoMap.get(urls.get(position));
if (imageInfoEntity != null && imageInfoEntity.getFileSize() != null) {
String url = urls.get(position);
ImageInfoEntity imageInfoEntity = mImageInfoMap.get(url);
if (imageInfoEntity != null && imageInfoEntity.getFileSize() != null &&
!mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url))) {
String size = String.format(Locale.CHINA, "%.1fM",
Integer.valueOf(imageInfoEntity.getFileSize().getValue()) / 1024F / 1024F);
mProgressHint.setVisibility(View.VISIBLE);
mProgressHint.setText(("查看原图(" + size + ")"));
ViewGroup.LayoutParams layoutParams = mProgressHint.getLayoutParams();
layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
mProgressHint.setLayoutParams(layoutParams);
}
}
@ -275,7 +281,7 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
.build();
imageView.setController(controller);
} else {
ImageUtils.display(imageView, url);
imageView.setImageURI(url); // 加载原图
}
}
@ -297,7 +303,7 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
Gh_RelativeLayout view = (Gh_RelativeLayout) View.inflate(container.getContext(), R.layout.viewimage_normal_item, null);
ZoomSimpleDraweeView imageView = view.findViewById(R.id.viewimage_iv_show);
if (mImagePipeline.isInBitmapMemoryCache(Uri.parse(url)) || url.contains(".gif")) {
if (mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url)) || url.contains(".gif")) { // NetworkUtils.isWifiOr4GConnected(ViewImageActivity.this)
loadImage(url, imageView);
} else {
ImageUtils.addLimitWidthAndLoad(imageView, url, mLimitWidth, imageInfo -> {
@ -350,9 +356,9 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
String limitUrl = ImageUtils.addLimitWidth(urls.get(mViewPager.getCurrentItem()), mLimitWidth);
String targetUrl = null;
if (mImagePipeline.isInBitmapMemoryCache(Uri.parse(url))) {
if (mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url))) {
targetUrl = url;
} else if (mImagePipeline.isInBitmapMemoryCache(Uri.parse(limitUrl))) {
} else if (mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(limitUrl))) {
targetUrl = limitUrl;
}