2011-09-02 3 views
3

이 코드를 사용하여 카메라의 현재 촬영 이미지를 표시하고 싶습니다. 카메라에서 이미지를 가져 와서 이미지 뷰에 표시 할 수 있습니다. 이미지의 파일 이름을 알고 싶습니다.안드로이드에서 카메라 의도를 사용하여 이미지 이름을 얻는 방법은 무엇입니까?

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, CAMERA_PIC_REQUEST); 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
switch (requestCode) 
{ 
case 2: 
{ 
    if (resultCode == RESULT_OK) 
    { 
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
    mg_view.setImageBitmap(thumbnail); 
    } 
    break; 
    } 
    } 
    } 

어떻게 이미지 이름을 얻을 수있는 친구를 도와주세요,

감사합니다 친구 (YourActivity라고도 함) 활동에

답변

7

:

public static int TAKE_IMAGE = 111; 
Uri mCapturedImageURI; 

어딘가에 카메라를 전화를! 아름다운 일 활동 결과에 이제

try { 
    String fileName = "temp.jpg"; 
    ContentValues values = new ContentValues(); 
    values.put(MediaStore.Images.Media.TITLE, fileName); 
    mCapturedImageURI = getContentResolver() 
      .insert(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
        values); 
    Intent intent = new Intent(
      MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, 
      mCapturedImageURI); 
    startActivityForResult(intent, TAKE_IMAGE); 
} catch (Exception e) { 
    Log.e("", "", e); 
} 

(통지 capturedImageFilePath)

protected void onActivityResult(int requestCode, int resultCode, 
     Intent intent) { 
    if ((requestCode == YourActivity.TAKE_IMAGE) 
      && (resultCode == RESULT_OK)) { 
     mode = MODE_VIEWER; 
     String[] projection = { MediaStore.Images.Media.DATA }; 
     Cursor cursor = managedQuery(mCapturedImageURI, projection, null, 
       null, null); 
     int column_index_data = cursor 
       .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 

     //THIS IS WHAT YOU WANT! 
     String capturedImageFilePath = cursor.getString(column_index_data); 

     bitmap = BitmapFactory.decodeFile(capturedImageFilePath); 
    } 
} 
+1

, 나는 거의 포기했다 6 시간 후에,이 셰리프를 찾을 때까지. 당신을 위해 Upvote. 나 같은 문제가있는 누군가를 위해 더 많은 정보를 제공하기 위해, 나는 조류 사육장과 일하고 있었고 이미지 이름을 조류 사유로 전달할 방법을 찾지 못했습니다. 이것이 나를 도왔습니다. Thanks again again :) – Veeru

+0

managedQuery는 (는) 사용되지 않습니다. – RRTW

+0

@RRTW 그래,이 코드를 업데이트해야합니다 –

3
sample code. May be it is useful to you. 

Uri mUri; 
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
mUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "imgnm_"+ String.valueOf(System.currentTimeMillis())+ ".jpg")); 
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,mUri); 
intent.putExtra("return-data", true); 
startActivityForResult(intent, PICK_CAMERA_IMAGE); 


public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == PICK_CAMERA_IMAGE) { 
     if (resultCode == RESULT_OK) { 
     String path = mUri.getPath(); 

     if (path.length() > 0) { 
          String filepath = path; 
          String filename = filepath.substring(filepath.lastIndexOf("/") + 1,filepath.length()); 
           String filetype = ".jpg"; 
           Bitmap bm = BitmapFactory.decodeFile(filepath); 
           mg_view.setImageBitmap(bm); 
          } 

        } 
      } 
+0

덕분에 나는 이것을 찾고있었습니다. –

0

이 코드를 시도

Log.d("ANDRO_CAMERA", "Starting camera on the phone..."); 
    String fileName = "testphoto.jpg"; 
    ContentValues values = new ContentValues(); 
    values.put(MediaStore.Images.Media.TITLE, fileName); 
    values.put(MediaStore.Images.Media.DESCRIPTION, 
      "Image capture by camera"); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 
    imageUri = getContentResolver().insert(
      MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, IMAGE_CAPTURE); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == IMAGE_CAPTURE) { 
     if (resultCode == RESULT_OK){ 
      Log.d("ANDRO_CAMERA","Picture taken!!!"); 
      imageView.setImageURI(imageUri); 
     } 
    } 
} 

}

관련 문제