2013-02-06 91 views
0

在我的应用我想从仅在Gridview.I Camera文件夹显示图像写了下面的代码导入图像: -导入图像

String[] projection = { MediaStore.Images.Thumbnails._ID, }; 

     Cursor mImageCursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null); 

    if (mImageCursor != null) 
    { 

     mImageCursor.moveToFirst(); 

     for (int i = 0; i < mImageCursor.getCount(); i++) 
     { 
      Images im=new Images(); 
      int imageId = mImageCursor.getInt((mImageCursor.getColumnIndex(MediaStore.Images.Media._ID))); 
      Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), 
        imageId, MediaStore.Images.Thumbnails.MINI_KIND, null); 
      im.setBitmap(bm); 
      arrayOfImages.add(im); 

      mImageCursor.moveToNext(); 
     } 
    } 

但这代码全部进口来自画廊的图像。 但我想从相机文件夹导入图像。 p

+0

**此博客可以帮助你。** http://startandroiddevelopment.blogspot.in/2013/10/importing-image-from-gallery.html – 2013-11-01 11:28:11

回答

4

如果您只想拍摄相机图像,可以通过过滤存储桶名称来获取相机图像列表。在这种情况下,您可以阅读缩略图并将其显示在自己的活动中,并要求用户选择。

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String[] projection = { 
       MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, 
       MediaStore.Images.Media.DISPLAY_NAME 
     }; 
     String selection = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?"; 
     String[] selectionArgs = new String[] { 
      "Camera" 
     }; 
     Cursor mImageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       projection, selection, selectionArgs, null); 

     while (mImageCursor.moveToNext()) { 
      Log.d("TestActivity", mImageCursor.getString(1) + " " + mImageCursor.getString(2)); 

     } 
    } 
+0

正确answer.Thanks您的帮助。 – void

+0

很高兴帮助.... – jlopez

+0

它不适用于所有设备例如。索尼 – Chaitu