Kann ich die Picasso-Bibliothek verwenden, um Bilder aus dem Dateisystem zu laden?
Ich verwende startActivityForResult
, um den Benutzer ein Foto aus seiner Galerie auswählen zu lassen und dann das ausgewählte Bild anzuzeigen.
Ich habe bereits Arbeitscode Uri
, um das Image-Dateisystem abzurufen , kann die Picasso.load()
Methode jedoch nicht zum Laufen bringen.
Picasso.get().load(f).into(imageView);
oderPicasso.get().load(uri).into(imageView);
oderPicasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);
Ja, du kannst.
Versuchen:
Picasso.with(context).load(new File(YOUR_FILE_PATH)).into(imageView);
BEARBEITEN
Sie können
.load(YOUR_URI)
stattdessen auch anrufen .quelle
Beim Betrachten des Quellcodes stelle ich außerdem fest, dass Sie das Bild aus dem Dateisystem laden können, indem Sie
file:
Ihrem Bildpfad ein Zeichenfolgenpräfix hinzufügen . Zum Beispiel:file:path/to/your/image
Wenn Sie startActivityForResult verwenden, erhalten Sie außerdem Folgendes:
Uri imageContent = data.getData();
Anschließend können Sie
Picasso.with(getContext()).load(imageContent.toString).into(imageView);
direkt aufrufen, ohne einenCursor
Bildpfad erstellen und abfragen zu müssen.quelle
file://
. Dein Uri fehlt der zweite/
.Versuche dies:
Picasso.with(context) .load("file://"+path) // Add this .config(Bitmap.Config.RGB_565) .fit().centerCrop() .into(imageView);
Es funktioniert perfekt für mich.
quelle
> 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);
quelle
Picasso.with()
ist nicht mehr verfügbar.Grundsätzlich müssen wir drei Dinge,
Context
,image´s path
und derImageView
Container//Old version: Picasso.with(context).load("/files/my_image.jpg").into(myImageView); Picasso.get().load("/files/my_image.jpg").into(myImageView);
Wir können jedoch weitere Optionen nutzen:
.resize(20, 20) .centerCrop() .placeholder(R.drawable.user_placeholder) .error(R.drawable.user_placeholder_error)
usw...
Weitere Informationen: http://square.github.io/picasso/
quelle
Wenn jemand versucht, dies mit Kotlin zu tun, dann ist es hier ...
//Variablen
private lateinit var addImage: ImageView // set the id of your ImageView private lateinit var imageUri: Uri
// Galerie öffnen, um ein Bild auszuwählen
val gallery = Intent() gallery.type = "image/*" gallery.action = Intent.ACTION_GET_CONTENT startActivityForResult(Intent.createChooser(gallery, "Select picture"), PICK_IMAGE)
//Nächster
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() } } }
Das ist alles was du brauchst.
quelle