2011-01-11 7 views
5

Ich habe einige Bilder im Ordner Bilder auf SD-Karte gespeichert. Ich möchte direkt auf diese Bilder meines Ordners zugreifen.Wie bekomme ich Galley Thumbnail für bestimmte Bildordner in Android?

Ich habe den folgenden Code verwendet, um Galerie Bilder direkt auszuwählen.

Intent intent = new Intent(Intent.ACTION_PICK); 

intent.setDataAndType(Uri.parse("file:///sdcard/Pictures/"), "image/*"); 

startActivityForResult(intent, 1); 

Der obige Code wird alle Bilder von der SD-Karte erhalten. Aber ich brauche nur meinen Bilderordner. Ich habe auch Intent.ACTION_GET_CONTENT versucht, das gleiche Ergebnis.

Bitte jemand korrigieren mich ...

Vielen Dank.

+0

Haben Sie die Antwort bekommen ?, wenn ja, bitte teilen .. – PiyushMishra

Antwort

0

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