2013-01-07 2 views
4

갤러리보기의 특정 폴더에있는 이미지 만 표시하는 작은 앱을 만들려고합니다. 나는 몇 가지 예제를 발견했지만, 모든 단일 이미지는 단 하나의 이미지 만 표시합니다. 아래에 게시 할이 예제는 훌륭한 도움말이었습니다. 원하는 작업을 거의 수행 했으므로 모든 폴더가 아닌 특정 폴더의 이미지 만 표시하면됩니다. 며칠 동안 시도해 보았지만 올바른 코드를 추가하지 않는 것 같습니다. 나는 그것도 내가 빠진 아주 간단한 것 같아. 어떤 도움이라도 대단히 감사하겠습니다!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

어떻게 폴더 이름을 정확하게 지정합니까? 예 : "Images"폴더./mnt/sdcard/Images 또는 String dirName = Environment.getExternalStorageDirectory() + "/ Images"입니다. 네 번째 인수에 대해 우리는 무엇을 규정합니까? new String [] { "/ mnt/sdcard/Images"} 또는 새 문자열 [] { "Images"} 또는 단순히 dirName? – Harish

관련 문제