2011-02-02 3 views
2

카메라에서 이미지를 얻으려면 Android SDK 샘플을 사용하고 있습니다. 아래 코드는 내가 코드에 추가 한 유일한 논리입니다. 기본적으로 사진을 비트 맵으로 변환하여 표시하고 있습니다. 불행하게도이 어떤 도움이그림을 왜곡 된 이미지로 만듭니다.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch(keyCode){ 
     case KeyEvent.KEYCODE_CAMERA: 
      mCamera.takePicture(null, null,new PictureCallback(){ 

       @Override 
       public void onPictureTaken(byte[] data, Camera camera) { 
        showPicture(data); 
       } 

      }); 
      break; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

void showPicture(byte[] data) { 

    if (data != null) { 
     Bitmap picture = BitmapFactory 
       .decodeByteArray(data, 0, data.length); 
     ImageView view = new ImageView(this); 
     view.setImageBitmap(picture); 
     this.setContentView(view); 

    } 

} 

답변

2

가 surfaceChanged에서 문제가 발견 이해할 수있을 것이다

(에뮬레이터 그냥 괜찮에) 왜곡 된 이미지로 실제 전화 결과 방법이 줄을 비난해야한다.

List sizes = parameters.getSupportedPreviewSizes(); if (sizes != null) { Size optimalSize = getOptimalPreviewSize(sizes, width, height); parameters.setPreviewSize(optimalSize.width, optimalSize.height); } else { parameters.setPreviewSize(width, height); }


그들을 제거하면 모든 문제가 해결되었습니다. 지금은이 이것은 G2에서 발생 새로운 문제
BTW

가 발생하지 않습니다 있는지 확인해야합니다

관련 문제