Picasso Load image from filesystem

烈酒焚心 提交于 2019-11-26 04:45:32

问题


Can I use Picasso library to load images from the filesystem?

I\'m using startActivityForResult to let the user pick a photo from his gallery, and then want to show the selected image.

I already have working code to get the image filesystem Uri, but can\'t get the Picasso.load() method to work.


回答1:


Of course you can. Its actually pretty straight forward:

File f = new File("path-to-file/file.png")

or

File f = new File(uri)

Picasso.with(getActivity()).load(f).into(imageView);

also

Picasso.with(getActivity()).load(uri).into(imageView);

works




回答2:


Yes you can.

Try:

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

EDIT

You can also call .load(YOUR_URI) instead as well.




回答3:


Looking in the source code I also discover that you can load the image from filesystem adding file: string prefix to your image path. For example:

file:path/to/your/image

Also, when using startActivityForResult, you will get something like this:

Uri imageContent = data.getData();

Then, you can call Picasso.with(getContext()).load(imageContent.toString).into(imageView); directly without need to create a Cursor and querying for the image path.




回答4:


Try this:

Picasso.with(context)
.load("file://"+path) // Add this
.config(Bitmap.Config.RGB_565)
.fit().centerCrop()
.into(imageView);

It work perfect for me.




回答5:


> Picasso.get().load(R.drawable.landing_screen).into(imageView1);
> Picasso.get().load("file:///android_asset/DvpvklR.png").into(imageView2);
> Picasso.get().load(new File(...)).into(imageView3);



回答6:


Basically we need three things, Context, image´s path and the ImageView Container

Picasso.with(context).load("/files/my_image.jpg").into(myImageView);

but we can make use of more options:

  .resize(20, 20)
  .centerCrop()
  .placeholder(R.drawable.user_placeholder)
  .error(R.drawable.user_placeholder_error)

etc...

more info : http://square.github.io/picasso/




回答7:


If anyone trying to do this with Kotlin then here it is...

//variables

private lateinit var addImage: ImageView  // set the id of your ImageView
private lateinit var imageUri: Uri

//open gallery to select an image

val gallery = Intent()
        gallery.type = "image/*"
        gallery.action = Intent.ACTION_GET_CONTENT

        startActivityForResult(Intent.createChooser(gallery, "Select picture"), PICK_IMAGE)

//next

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == PICK_IMAGE && resultCode == RESULT_OK) {
            imageUri = data?.data!!
            try {

                Picasso.get()
                    .load(imageUri)
                    .into(addImage)

            } catch (e: Throwable) {
                e.printStackTrace()
            }
        }
    }

That's all you need.



来源:https://stackoverflow.com/questions/23681177/picasso-load-image-from-filesystem

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!