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