Ich möchte eine Bildauswahl aus der Galerie erstellen. Ich benutze Code
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, TFRequestCodes.GALLERY);
Mein Problem ist, dass in dieser Aktivität Videodateien angezeigt werden. Gibt es eine Möglichkeit, angezeigte Dateien so zu filtern, dass in dieser Aktivität keine Videodateien angezeigt werden?
Antworten:
Absolut. Versuche dies:
Vergessen Sie nicht, auch die Konstante PICK_IMAGE zu erstellen , damit Sie erkennen können, wann der Benutzer aus der Bildergalerie zurückkommt. Aktivität:
So nenne ich die Bildergalerie. Setzen Sie es ein und sehen Sie, ob es für Sie funktioniert.
BEARBEITEN:
Dadurch wird die Dokumente-App aufgerufen. So kann der Benutzer auch alle von ihm installierten Galerie-Apps verwenden:
quelle
@Override
Funktion verwendetonActivityResult(int requestCode, resultCode, Intent data)
. Es wird empfohlen, diese Konstante zu verwenden, um denrequestCode
Parameter zu überprüfen , bevor Sie eine AktionManchmal können Sie aus dem ausgewählten Bild keine Datei abrufen. Dies liegt daran, dass der ausgewählte von Google+, Drive, Dropbox oder einem anderen Anbieter stammt.
Die beste Lösung besteht darin, das System zu bitten, einen Inhalt über Intent.ACTION_GET_CONTENT auszuwählen und das Ergebnis bei einem Inhaltsanbieter zu erhalten.
Sie können dem folgenden Code folgen oder sich meine aktualisierte Übersicht ansehen .
quelle
if(resultCode == Activity.RESULT_OK) {...}
kann verwendet werden, um Erfolg zu erkennen / abzubrechennew File(data.getData()).getAbsolutePath()
Nur eine Vermutung, ich habe es nicht versuchtgetActivity().getContentResolver().openInputStream(data.getData());
.quelle
path
? inFile file = new File(path);
Mit dieser Methode können Sie Bilder aus der Galerie auswählen. Es werden nur Bilder angezeigt.
und überschreiben Sie onActivityResult als
quelle
Hier ist ein vollständiges Beispiel für die Anforderung einer Berechtigung (falls erforderlich): Wählen Sie ein Bild aus der Galerie aus und konvertieren Sie das Bild in
bitmap
oderfile
AndroidManifesh.xml
Aktivität
Demo
https://github.com/PhanVanLinh/AndroidPickImage
quelle
Wenn Sie nur nach Bildern und Mehrfachauswahl suchen.
Schauen Sie einmal @ https://stackoverflow.com/a/15029515/1136023
Es ist hilfreich für die Zukunft. Ich persönlich fühle mich großartig, wenn ich MultipleImagePick verwende .
quelle
Nur um ein Update der Antwort für Personen mit API min 19 gemäß den Dokumenten anzubieten:
Öffnen Sie Dateien mit dem Storage Access Framework - Android Docs
quelle
Für nur lokale Auswahl hinzufügen:
Und das funktioniert gut:
quelle
Sie können es einfacher machen als diese Antworten:
quelle