Gibt es eine Standardmethode zum Aufrufen eines Dialogfelds, in dem Sie auswählen können, ob Sie ein Bild von der Kamera auswählen oder von der Galerie abrufen möchten (z. B. im integrierten Telefonbuch oder in Skype)?
Ich habe einen Blick auf genommen dies aber der Code öffnet die Bildgalerie , ohne es von der Kamera zu holen hindeutet.
Gerät: Samsung Galaxy Tab
Android: 2.3.3
Antworten:
Der folgende Code kann zum Aufnehmen eines Fotos und zum Auswählen eines Fotos verwendet werden. Zeigen Sie einfach einen Dialog mit zwei Optionen an und verwenden Sie bei Auswahl den entsprechenden Code.
So fotografieren Sie mit der Kamera:
So wählen Sie ein Foto aus der Galerie aus:
onActivityResult
Code:Fügen Sie abschließend diese Berechtigung in die Manifestdatei ein:
quelle
Intent
als Fallback eine SecurityException auslöst. Weitere Informationen: plus.google.com/+AndroidDevelopers/posts/e9kyM7VXajzIch habe einige Lösungen zusammengeführt, um ein Bild aus der Galerie oder Kamera vollständig auszuwählen. Dies sind die Funktionen von ImagePicker util gist (auch in einer Github-Bibliothek ):
Bildschirmfoto:
Bearbeiten : Hier ist ein Codefragment, um eine zusammengeführte Absicht für Galerie- und Kamera-Apps zusammenzuführen. Den vollständigen Code finden Sie unter ImagePicker util gist (auch in einer Github-Bibliothek ):
quelle
boolean isCamera = (imageReturnedIntent == null || imageReturnedIntent.getData() == null);
getTempFile
und wie wird diese Funktion verwendet? Bitte aktualisieren Sie die AntwortFileProvider
für API> = 23 undUri
für weniger.Diese Bibliothek macht es einfach.
Ruf einfach an:
Lassen Sie dann Ihre Aktivität IPickResult implementieren und überschreiben Sie die folgende Methode.
quelle
Sie können diesen Code implementieren, um ein Bild aus der Galerie oder Kamera auszuwählen: -
Jetzt können Sie beim Klicken auf die Schaltfläche Ihre Methode zur Auswahl von Bild aufrufen. Dies befindet sich in onCreate der Aktivität.
Außerhalb Ihrer Aktivität oncreate.
Atlast, füge endlich die Kamera hinzu und schreibe die externe Speicherberechtigung in AndroidManifest.xml
Es funktioniert sehr gut für mich, hoffe es funktioniert auch für Sie.
quelle
Ich denke, es liegt an Ihnen, diesen Dialog zur Auswahl zu zeigen. Für die Galerie verwenden Sie diesen Code, und für die Kamera versuchen Sie dies .
quelle
Wenn Sie das Bild aus der Galerie abrufen oder das Bild aufnehmen und im Hochformat auf die Bildansicht einstellen möchten, hilft Ihnen der folgende Code.
In onCreate ()
Hoffe das wird dir helfen .... !!!
Wenn targetSdkVersion höher als 24 ist, wird FileProvider verwendet, um den Zugriff zu gewähren.
Erstellen Sie eine XML-Datei (Pfad: res \ xml) provider_paths.xml
Fügen Sie einen Provider in AndroidManifest.xml hinzu
und ersetzen
Zu
quelle