我正在处理一个从摄像头捕获图像的应用程序,显示快速预览并将其发送到服务器。现在的问题是,我设法启动相机并拍摄照片,但图片本身没有正确保存(它看起来像是以较小的比例重复相同的图像)。这是针对Android 2.2上的ZT180设备完成的。我想说同样的应用程序在android 4.0上运行正常。
这是显示相机预览的回调:
SurfaceHolder.Callback callback = new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
camera.lock();
try {
camera.setPreviewDisplay(previewHolder);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
Parameters params = camera.getParameters();
params.setPreviewFormat(PixelFormat.RGB_565);
camera.setParameters(params);
camera.startPreview();
}
};
这是用于拍照的代码(解码到位图并最初显示在对话窗口上):
BitmapFactory.Options opts = new BitmapFactory.Options();
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
ImageView imageView = new ImageView(activity);
imageView.setImageBitmap(bitmap);