2014-01-20 2 views
1

카메라에서 촬영 한 이미지를 휴대폰에 저장하려고합니다. 그것은 작동하지만 이미지의 품질은 매우 나쁩니다. 이 문제를 해결하려면카메라 이미지 품질이 매우 좋지 않음

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_PICTURE) 
    { 
     if (resultCode == RESULT_OK) 
     { 
      bitmap = (Bitmap) data.getExtras().get("data"); 
      String path = Images.Media.insertImage(getContentResolver(), bitmap, "", null); 
     Uri imageUri = Uri.parse(path); 
     } 

당신이 날 도와주세요 수 :

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

그리고 ativity 결과에 대한

, 나는이 시도 : 첫째, 의도, 이것은 내 코드?

+1

"카메라에서 찍은 이미지를 내 휴대폰에 저장하려고합니다."- 왜 EXTRA_OUTPUT을 사용하지 않고 카메라 응용 프로그램에서 이미지를 저장하게합니까? – CommonsWare

+0

왜 이미지를 확대하고 있습니까? –

+0

@CommonsWare : 어떻게 할 수 있습니까? –

답변

0

이미지를 디스크에 저장하려면 카메라 응용 프로그램에서 이미지를 저장하도록하십시오. 이미지를 저장할 위치를 가리키는 IntentEXTRA_OUTPUTUri을 추가하십시오.

package com.commonsware.android.camcon; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import java.io.File; 

public class CameraContentDemoActivity extends Activity { 
    private static final int CONTENT_REQUEST=1337; 
    private File output=null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File dir= 
     Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 

    output=new File(dir, "CameraContentDemo.jpeg"); 
    i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output)); 

    startActivityForResult(i, CONTENT_REQUEST); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
            Intent data) { 
    if (requestCode == CONTENT_REQUEST) { 
     if (resultCode == RESULT_OK) { 
     Intent i=new Intent(Intent.ACTION_VIEW); 

     i.setDataAndType(Uri.fromFile(output), "image/jpeg"); 
     startActivity(i); 
     finish(); 
     } 
    } 
    } 
} 

(this sample project로부터)를 요구 Uri 카메라 애플리케이션은 외부 저장 장치로서, 기록 할 수있는 장소를 가리.

+0

감사합니다. –

+1

CONTENT_REQUEST 상수를 1337로 설정하는 이유는 무엇입니까? 그냥 임의의 숫자입니까? –

+1

@ TashPemhiwa : 정수 여야합니다. 여러분에게 맞는 다른 정수를 선택할 수 있습니다. * 당신의 액티비티가 여러개의 다른 요청에 대해 여러 곳에서'startActivityForResult()'를 호출한다면, 당신은 onActivityResult()가 그것들을 구별 할 수 있도록 서로 다른 요청 코드 정수를 원할 것입니다. – CommonsWare

관련 문제