7

I saved a few JPEG images into the phones storage and I want to load the using picasso into an ImageView. I'm having trouble with it though, whatever I try I just can't load the image, the ImageView end up being blank.

Here's how I save and retrieve the images:

 private void saveImage(Context context, String name, Bitmap bitmap){
    name=name+".JPG";
    FileOutputStream out;
    try {
        out = context.openFileOutput(name, Context.MODE_PRIVATE);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}


private Bitmap getSavedImage(Context context, String name){
    name=name+".JPG";
    try{
        FileInputStream fis = context.openFileInput(name);
        Bitmap bitmap = BitmapFactory.decodeStream(fis);
        fis.close();
        return bitmap;
    }
    catch(Exception e){
        e.printStackTrace();
    }
    return null;
}

As you can see the returned image is a bitmap, how can I load it into a imageview using picasso? I know I can load the bitmap into an image like this:

imageView.setImageBitmap(getSavedImage(this,user.username+"_Profile"));

But I have a class which using picasso rounds up the image(users profile photo) so I need to load it with picasso.

Ivan Javorovic
  • 253
  • 1
  • 3
  • 8

2 Answers2

21

First of all, obtain the path of the image to be loaded. Then, you can use

Picasso.with(context).load(new File(path)).into(imageView);

to load the image into an ImageView.

rookiedev
  • 1,057
  • 2
  • 9
  • 21
  • The key here is using .load(new File(path)) instead of .load(path). Works like charm. I am using this for loading image from internal storage – Rohit Singh Aug 16 '20 at 05:49
1

With the latest version of Picasso in Kotlin:

       Picasso.get()
            .load(File(context.filesDir, filename))
            .into(imageView)
Amiraslan
  • 794
  • 1
  • 8
  • 19