拍摄照片导致图像失真

问题描述:

我正在使用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); 

    } 

} 

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


删除它们解决了所有问题。现在,我必须确保这不会造成新的问题

BTW
这发生在G2