I am getting Image as BLOB type from API. And, I am saving as follows,
public static void setOptimalImage(Context ctx, File file, ImageView iv,
Point size) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getPath(), options);
if (options.outHeight > 0 && options.outWidth > 0) {
if (size == null) {
size = new Point();
WindowManager wm = (WindowManager) ctx
.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getSize(size);
}
options.inSampleSize = Utils.calculateInSampleSize(options, size.x,
size.y);
options.inJustDecodeBounds = false;
try {
iv.setImageBitmap(BitmapFactory.decodeFile(file.getPath(),
options));
} catch (OutOfMemoryError oome) {
Log.e(Utils.class.getName(),
oome.getMessage() == null ? "OutOfMemory error: "
+ file.getName() : oome.getMessage());
}
}
}
Now, the issue i am facing is,
When I am saving it, sometimes the image is saving only half.Now, my question is,
Edit:
Any help would be really appreciated.
Thanks.
Attaching Image for Reference:
I think you look into incorrect direction of detecting corrupted images. It would be easy to manage loaded (or semi-loaded) bitmaps using API and requests. You can also have a file (or even better a database), in which you will have an information about downloaded images.
I see multiple checks, "is image downloaded?":
And after during display you can detect which images are fully loaded.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With