Ich habe die Codes funktionieren für das Laden von Bildern aus der Galerie, aber ich verstehe wirklich nicht, wie es funktioniert. Hier sind die Codes.Wie funktionieren die Codes zum Laden von Bildern aus der Galerie Android
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { //Browse Gallery is requested
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
loadImage(picturePath); //load picture according the path
image_View.setImageBitmap(pic); //Show the selected picture
}
}
Uri SelectedImage = data.getData();
Holen Sie sich die uri von ausgewählten Bild von Vorsatz
String [] filePathColumn = {MediaStore.Images.Media.DATA};
MediaStore.Images.Media.DATA ist konstant. Ich verstehe nicht, warum nicht String anstelle von String []
Cursor Cursor = getContentResolver() Abfrage (SelectedImage, filePathColumn, null, null, null).
Ich verstehe diese Zeile nicht.
cursor.moveToFirst();
Wechseln Sie zum ersten Bild in der Galerie.
int spalteIndex = cursor.getColumnIndex (filePathColumn [0]);
Dafür bekomme ich immer 0 egal welches Bild ich wähle.
Zeichenfolge picturePath = cursor.getString (columnIndex);
Da columnIndex immer 0 ist, wie kann es dann verschiedene Pfade für verschiedene Bilder bekommen?
Kann mir jemand helfen zu überprüfen, ob meine Erklärung korrekt ist und die Zeile erklären, die ich nicht verstehe? Vielen Dank.