拍照会导致图像失真

时间:2011-02-02 04:50:18

标签: android

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

    }

}

1 个答案:

答案 0 :(得分: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); }

除掉它们解决了所有问题。现在我必须确保这不会引起新问题

BTW
这发生在G2