Genau wie das iPhone hat einen UIImagePickerController, um den Benutzer Zugriff auf Bilder auf dem Gerät gespeichert haben, haben wir eine ähnliche Kontrolle im Android SDK?Greifen Sie auf Bilder von Bilder App in meiner Android-App
Danke.
Genau wie das iPhone hat einen UIImagePickerController, um den Benutzer Zugriff auf Bilder auf dem Gerät gespeichert haben, haben wir eine ähnliche Kontrolle im Android SDK?Greifen Sie auf Bilder von Bilder App in meiner Android-App
Danke.
Sie können startActivityForResult
verwenden und einen Intent übergeben, der eine Aktion beschreibt, die abgeschlossen werden soll, und Datenquelle, auf der die Aktion ausgeführt werden soll.
Zum Glück für Sie, enthält Android eine Aktion für die Kommissionierung Dinge: Intent.ACTION__PICK
und eine Datenquelle mit Bildern: android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
für Bilder auf dem lokalen Gerät oder android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
für Bilder auf der SD-Karte.
Anruf startActivityForResult
Gang in der Auswahlaktion und die aufgenommenen Bilder der Benutzer aus, so wählen wollen:
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);
Dann onActivityResult
außer Kraft für den Benutzer zu hören eine Auswahl getroffen zu haben.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_IMAGE)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
// TODO Do something with the select image URI
}
}
Sobald Sie das Bild Uri haben, können Sie es verwenden, um auf das Bild zuzugreifen und tun, was auch immer Sie damit tun müssen.
Mein onactivityresult wird nicht aufgerufen, wenn Sie diesen ... irgendeinen Vorschlag verwenden? Ich setze externe Speicherberechtigung –
Um zu sehen, wie genau Sie den Dateipfad von der Variable selectedImage abrufen, überprüfen Sie diese Antwort: http://StackOverflow.com/a/10474167 – Tiago
Sie können auch tun:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
Diese Bilder in allen Speicher abholt.
Ist es möglich, die Kamera als zusätzliche Quelle angezeigt werden Hier? – jjxtra
Wenn Sie die statische 1 an startActivityForResult übergeben, wie identifizieren Sie den Anforderungscode innerhalb der onActivityResult()? –
Nur ein Update auf die Antwort von Reto. Sie können dies tun, um das Bild zu skalieren:
private String getPath(Uri uri) {
String[] data = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(context, uri, data, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Ich glaube, was Sie nach einem Content-Provider android.provider und eine Klasse namens MediaStore.Images [Weitere Informationen finden Sie hier.] Genannt ist (http://developer.android.com/reference/android/provider/package-summary.html) – GregD