2012-03-03 22 views
0

こんにちは私は、そのフォルダのサブフォルダ(例:/ mnt/sdcard/Folder/SubFolder)内のすべての画像を取得するためにSDカードのフォルダを指定します。私はURIを設定しようとしたMediaStore managedQueryのフォルダを指定してください

gridview.setAdapter(new BaseAdapter() { 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ImageView picturesView; 
      if (convertView == null) { 
       picturesView = new ImageView(mContext); 
       // Move cursor to current position 
       cursor.moveToPosition(position); 
       // Get the current value for the requested column 
       int imageID = cursor.getInt(columnIndex); 
       // Set the content of the image based on the provided URI 
       picturesView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, "" + imageID)); 
       picturesView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
       picturesView.setPadding(8, 8, 8, 8); 
       picturesView.setLayoutParams(new GridView.LayoutParams(100, 100)); 
      } 
      else { 
       picturesView = (ImageView)convertView; 
      } 
      return picturesView; 
     } 

     public int getCount() { 
      return cursor.getCount(); 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

    }); 

作品だが、私のSDカードに含まれるすべての画像を表示すること... :

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gallery); 
    GridView gridview = (GridView) findViewById(R.id.gallery); 
    registerForContextMenu(gridview); 

    id = getIntent().getExtras().getString("ID"); 

    // Set up an array of the Thumbnail Image ID column we want 
    String[] projection = {MediaStore.Images.Thumbnails._ID}; 
    // Create the cursor pointing to the SDCard 
    cursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
      projection, // Which columns to return 
      null,  // Return all rows 
      null, 
      MediaStore.Images.Thumbnails.IMAGE_ID); 
    // Get the column index of the Thumbnails Image ID 
    columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 

そして、私のGridViewのsetAdapterに私が持っている:私はこれをしました"content:/// mnt/sdcard/folder/subfolder"のようなパスですが、動作しません... MediaStoreのmanagedQueryでスキャンする特定のフォルダを指定する方法はありますか?

ありがとうございました! :)

答えて

3

お試しくださいMediaStore.Images.Media.DATAフィールド - 画像ファイルのフルパスが含まれています。次に、カーソルを使用して実行したいファイルのみを選択するか、クエリを作成してパス "LIKE%your_folder_name%"のエントリのみを返します。

関連する問題