diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.kt b/app/src/main/java/com/gh/common/util/ImageUtils.kt index 73357f3b6f..a693a6f43c 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/ImageUtils.kt @@ -144,9 +144,9 @@ object ImageUtils { } } simpleDraweeView?.controller = Fresco.newDraweeControllerBuilder() - .setUri(url) .setControllerListener(listener) .build() + display(simpleDraweeView, url) } // 自适应图片宽高 @@ -225,7 +225,33 @@ object ImageUtils { // 规则 width>0 Wifi:x2 traffic:x1 @JvmStatic - fun display(view: SimpleDraweeView, url: String?) { + fun display(view: SimpleDraweeView?, url: String?) { + view?.post { + var transformUrl = url + val width = view.width + if (width > 0) { + val transformUrlX2 = addLimitWidth(url, width * 2) + val transformUrlX1 = addLimitWidth(url, width) + if (NetworkUtils.isWifiOr4GConnected(view.context)) { + transformUrl = transformUrlX2 + } else { + // 检查X2大图是否被缓存 + if (Fresco.getImagePipeline().isInBitmapMemoryCache(Uri.parse(transformUrlX2)) || + Fresco.getImagePipeline().isInDiskCacheSync(Uri.parse(transformUrlX2))) { + transformUrl = transformUrlX2 + } else { + transformUrl = transformUrlX1 + } + } + } + view.setImageURI(transformUrl) +// Utils.log("display::viewWidth->" + view.width + "----transformUrl->" + transformUrl) + } + } + + // 规则 width>0 Wifi:x2 traffic:x1 针对个别view无法获取宽高 + @JvmStatic + fun displayDelayed(view: SimpleDraweeView, url: String?) { view.postDelayed({ var transformUrl = url val width = view.width @@ -236,7 +262,8 @@ object ImageUtils { transformUrl = transformUrlX2 } else { // 检查X2大图是否被缓存 - if (Fresco.getImagePipeline().isInBitmapMemoryCache(ImageRequest.fromUri(transformUrlX2))) { + if (Fresco.getImagePipeline().isInBitmapMemoryCache(Uri.parse(transformUrlX2)) || + Fresco.getImagePipeline().isInDiskCacheSync(Uri.parse(transformUrlX2))) { transformUrl = transformUrlX2 } else { transformUrl = transformUrlX1 diff --git a/app/src/main/java/com/gh/common/util/UploadImageUtils.kt b/app/src/main/java/com/gh/common/util/UploadImageUtils.kt index 019b582531..7f2e90972d 100644 --- a/app/src/main/java/com/gh/common/util/UploadImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/UploadImageUtils.kt @@ -22,7 +22,8 @@ object UploadImageUtils { enum class UploadType { question, answer, - suggestion + suggestion, + icon } // 不处理图片,只是单纯的上次 diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index e5790d0b26..7a1b0fdcce 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -92,7 +92,7 @@ public class CropImageActivity extends BaseActivity { Observable.create((ObservableOnSubscribe) emitter -> { boolean isSuccess = mCropimageCustom.savePicture(path); if (isSuccess) { - UploadImageUtils.INSTANCE.uploadImage(UploadImageUtils.UploadType.answer, path, false, new UploadImageUtils.OnUploadImageListener() { + UploadImageUtils.INSTANCE.uploadImage(UploadImageUtils.UploadType.icon, path, false, new UploadImageUtils.OnUploadImageListener() { @Override public void onSuccess(@NotNull String imageUrl) { emitter.onNext(imageUrl); @@ -131,7 +131,7 @@ public class CropImageActivity extends BaseActivity { String iconCount = sp.getString("updateIconCount", null); long l = System.currentTimeMillis(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.CHINA); String time = format.format(new Date(l)); JSONObject jsonObject = new JSONObject(); diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index d603429e2a..a5c87d1cd6 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -217,7 +217,8 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe String url = urls.get(position); ImageInfoEntity imageInfoEntity = mImageInfoMap.get(url); if (imageInfoEntity != null && imageInfoEntity.getFileSize() != null && - !mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url))) { + !mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url)) && + !mImagePipeline.isInDiskCacheSync(ImageRequest.fromUri(url))) { String size = String.format(Locale.CHINA, "%.1fM", Integer.valueOf(imageInfoEntity.getFileSize().getValue()) / 1024F / 1024F); mProgressHint.setVisibility(View.VISIBLE); @@ -303,7 +304,10 @@ 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(ImageRequest.fromUri(url)) || url.contains(".gif")) { // NetworkUtils.isWifiOr4GConnected(ViewImageActivity.this) + if (mImagePipeline.isInBitmapMemoryCache(ImageRequest.fromUri(url)) || + mImagePipeline.isInDiskCacheSync(ImageRequest.fromUri(url)) || + NetworkUtils.isWifiOr4GConnected(ViewImageActivity.this) || + url.contains(".gif")) { loadImage(url, imageView); } else { ImageUtils.addLimitWidthAndLoad(imageView, url, mLimitWidth, imageInfo -> { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java index 6125d80f77..d5ebc034b0 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryAdapter.java @@ -38,7 +38,7 @@ class GameGalleryAdapter extends BaseRecyclerAdapter { @Override public void onBindViewHolder(final GameGalleryViewHolder holder, int position) { // holder.screenshot_item_iv.setImageURI(gallery.get(position)); - ImageUtils.display(holder.screenshotIv, gallery.get(position)); + ImageUtils.displayDelayed(holder.screenshotIv, gallery.get(position)); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java index f65e95e351..57df2a644d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java @@ -396,6 +396,9 @@ public class SettingsFragment extends NormalFragment { e.printStackTrace(); } } + +// Fresco.getImagePipeline().clearCaches(); // 清空图片缓存 + emitter.onComplete(); } diff --git a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java index cf1aeecffe..5668a3e832 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java @@ -170,7 +170,7 @@ public class SelectPortraitFragment extends NormalFragment { try { json = new JSONObject(iconCount); String lastTime = json.getString("time"); - if (lastTime.equals(time) && json.getInt("count") == 2) { + if (lastTime.equals(time) && json.getInt("count") >= 2) { toast("每天最多只能上传2次头像"); return; }