【问题标题】:How can I capture an image in Android and have it show up in the gallery?如何在 Android 中捕获图像并将其显示在图库中?
【发布时间】:2009-10-14 17:17:32
【问题描述】:

之前我正在拍摄图片,这些图片出现在画廊中,但现在它们没有出现,我不知道为什么。这是我的代码:

        ContentValues values = new ContentValues();
    values.put(android.provider.MediaStore.Images.Media.IS_PRIVATE, false);
    String name = "ugc_" + String.valueOf(System.currentTimeMillis());
    values.put(android.provider.MediaStore.Images.Media.TITLE, name);
    imageURI = getContentResolver().insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

我也试过: values.put(android.provider.MediaStore.Images.Media.IS_PRIVATE, 0); 以及以该值离开,但现在似乎没有任何效果。

【问题讨论】:

    标签: android image-capture


    【解决方案1】:

    非常不漂亮,但我就是这样做的。注意due to a bug,保存的文件是全分辨率的1/16(每个维度1/4)。

    String SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory() + File.separator + "tmpPhoto.jpg";
    Intent takePictureFromCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    takePictureFromCameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new
                File(SD_CARD_TEMP_DIR)));
    startActivityForResult(takePictureFromCameraIntent, TAKE_PICTURE_WITH_CAMERA);
    

    。 . .

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            //  Picture taken from camera
            if (requestCode == TAKE_PICTURE_WITH_CAMERA) {
                if (resultCode == Activity.RESULT_OK) {
    
                    // http://code.google.com/p/android/issues/detail?id=1480
                    //Toast.makeText(AddPhotos.this, "" + data, Toast.LENGTH_SHORT).show();
    
                    // on activity return
                    File f = new File(SD_CARD_TEMP_DIR);
                    try {
                        Uri capturedImage =
                            Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(),
                                    f.getAbsolutePath(), null, null));
    
    
                            Log.i("camera", "Selected image: " + capturedImage.toString());
    
                        f.delete();
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
    
    
                }
                else {
                    Log.i("Camera", "Result code was " + resultCode);
    
                }
            }   
         }
    

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多