Dies ist der Code, den ich verwende, um ein Bild von der SD-Karte
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),JobActivity.SELECT_PHOTO);
Hinweis Dieser lädt den Stammordner zu wählen.
Sobald ein Foto ausgewählt ist, wird die onActivityResult-Methode aufgerufen, und das Bild kann abgerufen werden.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
if (resultCode == RESULT_OK) {
if (requestCode == JobActivity.SELECT_PHOTO) {
Uri selectedImageUri = data.getData();
String selectedImagePath = getPath(selectedImageUri);
getBitmap(selectedImagePath, 0);
// Log.d("Debug","Saved...." + selectedImagePath);
}
}
} catch (Exception e) {
Log.e("Error", "Unable to set thumbnail", e);
}
}
Die get-Pfad-Methode
public String getPath(Uri uri) {
Cursor cursor = null;
int column_index = 0;
try {
String[] projection = { MediaStore.Images.Media.DATA };
cursor = managedQuery(uri, projection, null, null, null);
column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
} catch (Exception e) {
Log.d("Error", "Exception Occured", e);
}
return cursor.getString(column_index);
}
und schließlich die Bitmap um einen Faktor
public Bitmap getBitmap(String path, int size) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = size;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
return bitmap;
}
Die Größe Variable ermöglicht die Skalierung des Bildes zu erhalten. Wenn Sie nicht skalieren möchten, entfernen Sie einfach den Optionsparameter.
Ich bin nicht sicher, wie man es aus einem anderen Ordner als der Wurzel auswählen soll.
Hier ist ein hilfreicher Beitrag zu Get/pick an image from Android's built-in Gallery app programmatically
Haben Sie die Antwort bekommen ?, wenn ja, bitte teilen .. – PiyushMishra