2009-10-14 3 views
2

갤러리에 나타나기 전에 이미지를 캡처하고 있었지만 지금은 그렇지 않으며 이유를 알 수 없습니다. (android.provider.MediaStore.Images.Media.IS_PRIVATE, 0) values.put;Android에서 이미지를 캡처하고 갤러리에 표시하려면 어떻게해야하나요?

 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); 

나는 또한 시도했다 : 여기 내 코드입니다 뿐만 아니라 그 가치에 남겨두고 있지만 지금은 아무 것도 작동하지 않는 것 같습니다.

답변

6

매우 예쁘지는 않지만 내가 어떻게하는지 잘 알고 있습니다. 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); 

      } 
     } 
    }