2012-10-04 3 views
0

내가 바로 여기에이 코드가 안드로이드의 카마 서비스를 처리 :제대로

카마의 서비스를 호출
public class pantalla8 extends Activity { 
    protected static final int CAMERA_REQUEST = 0; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.camera); 
     final Button logout = (Button) findViewById(R.id.boton13); 
     logout.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       finish(); 
      } 
     }); 
     final Button camera = (Button) findViewById(R.id.boton12); 
     camera.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       Intent cameraIntent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_REQUEST); 
      } 
     }); 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == CAMERA_REQUEST) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     } 
    } 
} 

.

이렇게하면 사진을 찍어 저장하고 문제없이 내 앱으로 돌아갈 수 있습니다. 그러나 그림을 저장하고 싶지 않으면 그렇지 않으면 버리십시오. 오류가 발생하고 Android에서 응용 프로그램을 강제 종료합니다.

제 질문은, 내 코드에서 그 이벤트를 처리하기 위해 누락 된 것이 무엇입니까? 즉, 사용자가 사진을 버리면 카메라를 다시 호출해야합니다.

더하기, 사용자가 그림을 저장할 때; 그 사진들을 내 앱과 어떻게 관련 짓습니까? 나는 SQLite 테이블을 사용해야한다고 생각하지만, 어떻게해야할지 모르겠다. 왜냐하면 나중에 그 그림들을 서버에 보내야하기 때문이다.

나는 어떤 종류의 도움을 주셔서 감사합니다! 미리 감사드립니다.

+0

예외 스택 트레이스를 게시 하시겠습니까? – dongshengcn

+0

테스트 용 스톡 카메라 앱을 사용하고 있습니까? 그렇다면 어떤 장치입니까? 사진이 찍히지 않으면 카메라를 다시 호출하려면 결과 코드를 확인하십시오. RESULT_CANCELED 또는 RESULT_OK가 될 수 있습니다. –

+0

카메라로 촬영하려면 http : // stackoverflow .com/questions/2729267/android-camera-intent – dongshengcn

답변

0

유일한 문제는 사용자가 캡처 한 이미지를 삭제할 때 대소 문자를 처리하지 않는다는 것입니다. 사용자가 캡처 한 이미지를 버리면 으로 onActivityResult()이 호출됩니다. 다음은 카메라 용 onActivityResult()을 처리하기위한 샘플입니다.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    /* 
    * setting images from camera click intent 
    */ 
    try { 
     if (requestCode == CAMERA_REQUEST) { 
      if (resultCode == RESULT_OK) { 
       //here you can save the image or do something 

      } else if (resultCode == RESULT_CANCELED) { 
       // User cancelled the image capture 
      } else { 
       // Image capture failed, advise user 
      } 
     } 
    } catch(Exception e) { 
     Toast.makeText(yourActivity.this, "Unable to load image !!", Toast.LENGTH_SHORT).show(); 
    } 
} 

이 정보가 도움이되기를 바랍니다. 자유롭게 토론하십시오.