0

我在使用 Eclipse 开发的 Android 应用程序时遇到问题。

问题是当我使用以下说明捕获新图像时:

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(意图,TAKE_IMAGE);设备将文件正确存储在正确的目标(extSdCard)中,但以下应该重新加载目录内容的代码在设备重新启动之前找不到新文件。

images.clear();
final String[] columns = { MediaStore.Images.Thumbnails._ID };
final String orderBy = MediaStore.Images.Media._ID;
String condition = MediaStore.Images.Media.DATA + " like '%/"+
Singleton.getCurrentPatient().getNrdo()+"/%'";

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

if(imagecursor != null){
 int image_column_index = imagecursor
                .getColumnIndex(MediaStore.Images.Media._ID);
 int count = imagecursor.getCount();
 for (int i = 0; i < count; i++) {
            imagecursor.moveToPosition(i);
       int id = imagecursor.getInt(image_column_index);
       ImageItem imageItem = new ImageItem();
      imageItem.id = id;
      lastId = id;
      imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(
                    getApplicationContext().getContentResolver(), id,
                    MediaStore.Images.Thumbnails.MICRO_KIND, null);
     images.add(imageItem);
 }
   imagecursor.close();
 }
notifyDataSetChanged();

}

不幸的是,我尝试了很多解决方案,但没有任何效果

我第一次使用这个代码

mScanner = new MediaScannerConnection(
AndroidCustomGalleryActivity.this,new MediaScannerConnection.MediaScannerConnectionClient() {
    public void onMediaScannerConnected() {
      mScanner.scanFile(imageUri.getPath(), null /* mimeType */);
 }
    public void onScanCompleted(String path, Uri uri) {
     if (path.equals(imageUri.getPath())) {
         mScanner.disconnect();
                AndroidCustomGalleryActivity.this
             .runOnUiThread(new Runnable() {
                 public void run() {
                    updateUI();
                  }
        });
         }
         }
     });
mScanner.connect();

imageUri 包含 onMediaScannerConnected 方法上的正确路径,但永远不会调用 onScanCompleted

然后我在拍摄照片后尝试了这些说明

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, imageUri));    
updateUI(); 

再一次,updateUI 方法没有检测到新文件。

请问你能帮帮我吗 ?

4

1 回答 1

0

使用你所有的东西:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
 Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

在galary Scanner complate之后,使用以下代码从sdcard获取imageBitmap:

File imageFile = new File("/sdcard/gallery_photo_4.jpg");
ImageView jpgView = (ImageView)findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
jpgView.setImageDrawable(bitmap);
于 2013-04-19T08:27:02.417 回答