2013-01-07 58 views
4

我試圖製作一個小應用程序,它只顯示圖庫視圖中特定文件夾的圖像。我找到了幾個例子,但每一個例子都只顯示了一個圖像。我將在下面發佈的這個例子是一個WONDERFUL的幫助,它幾乎完全符合我希望它做的事情,我只需要將其更改爲顯示特定文件夾中的圖像,而不是所有文件夾。我已經給了這幾天的嘗試,但我似乎沒有在正確的代碼中添加。我覺得這是一件很簡單的事情,我也錯過了。任何幫助將不勝感激!Android從圖庫視圖中的特定文件夾中顯示圖像

public class AndroidCustomGallery extends Activity { 

    private int count; 
    private Bitmap[] thumbnails; 
    private boolean[] thumbnailsselection; 
    private String[] arrPath; 
    private ImageAdapter imageAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; 

       final String orderBy = MediaStore.Images.Media._ID; 

       Cursor imagecursor = getContentResolver().query(
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,   
         null, orderBy); 




       int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);   
       this.count = imagecursor.getCount();   
       this.thumbnails = new Bitmap[this.count];  
       this.arrPath = new String[this.count]; 
       this.thumbnailsselection = new boolean[this.count]; 

       for (int i = 0; i < this.count; i++) { 

        imagecursor.moveToPosition(i); 

        int id = imagecursor.getInt(image_column_index);   
        int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA); 

        thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(  
          getApplicationContext().getContentResolver(), id,  
          MediaStore.Images.Thumbnails.MICRO_KIND, null);  

        arrPath[i]= imagecursor.getString(dataColumnIndex); 

       } 

       GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);  
       imageAdapter = new ImageAdapter();  
       imagegrid.setAdapter(imageAdapter);  
       imagecursor.close(); 
+1

你的'ImageAdapter'類的內容是什麼 – Prabs

回答

13

想通了!以下是任何想要做類似事情的人的粘貼代碼。

Cursor imagecursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
         columns, 
         MediaStore.Images.Media.DATA + " like ? ", 
         new String[] {"%/yourfoldername/%"}, 
         null); 
+0

我在這個問題上花了2天時間。非常非常感謝你!!! – shift66

+0

很高興能夠提供幫助:) – BossWalrus

+0

我們如何準確指定文件夾名稱?例如:「圖像」文件夾。它是:/ mnt/sdcard /圖像或字符串dirName = Environment.getExternalStorageDirectory()+「/ Images」。對於第四個參數,我們指定了什麼?新的字符串[] {「/ mnt/sdcard /圖像」}或新的字符串[] {「圖像」}或簡單地dirName? – Harish

相關問題