Ivan Javorovic
Ivan Javorovic

Reputation: 263

Loading Images With Picasso From The Internal Storage

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.

Upvotes: 7

Views: 11646

Answers (2)

Amiraslan
Amiraslan

Reputation: 812

With the latest version of Picasso in Kotlin:

       Picasso.get()
            .load(File(context.filesDir, filename))
            .into(imageView)

Upvotes: 1

rookiedev
rookiedev

Reputation: 1127

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.

Upvotes: 22

Related Questions