2011-01-11 14 views
5

Mam kilka zapisanych obrazów w folderze Obrazy na karcie SD. Chcę uzyskać bezpośredni dostęp do obrazów mojego folderu.Jak uzyskać miniaturę Galley dla konkretnego folderu obrazu w systemie Android?

Użyłem poniższego kodu, aby wybrać zdjęcia z galerii bezpośrednio.

Intent intent = new Intent(Intent.ACTION_PICK); 

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

startActivityForResult(intent, 1); 

Powyższy kod pobiera wszystkie obrazy z karty SD. Ale potrzebuję tylko mojego folderu ze zdjęciami. Próbowałem również Intent.ACTION_GET_CONTENT, ten sam wynik.

Proszę mnie poprawić ...

Dziękuję.

+0

Dostałeś odpowiedź ?, jeśli tak proszę podzielić .. – PiyushMishra

Odpowiedz

0

Jest to kod używam, aby wybrać obraz z karty SD

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent, "Select Picture"),JobActivity.SELECT_PHOTO); 

Note to ładuje folderu głównego.

Po wybraniu zdjęcia, metoda onActivityResult jest nazywana obrazem, który można uzyskać.

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); 
    } 
} 

get metoda Path

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); 
} 

I wreszcie dostać bitmapy

public Bitmap getBitmap(String path, int size) { 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = size; 
    Bitmap bitmap = BitmapFactory.decodeFile(path, options); 
    return bitmap; 
} 

Zmienna wielkość umożliwia skalowanie obrazu przez współczynnik. Jeśli nie chcesz skalować, po prostu usuń parametr options.

Nie jestem pewien, jak powiedzieć, aby wybrać z innego folderu niż root.

Oto pomocne po zbyt Get/pick an image from Android's built-in Gallery app programmatically

Powiązane problemy