不是所有的设备都支持任意的preview size
要在public void surfaceChanged()里改变一下
</pre><p><pre name="code" class="html"> @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if (currentPreviewShow){
camera.stopPreview();
}
//获取相机参数对象
Camera.Parameters parameters = camera.getParameters();
<----------------------------------------此处需注意--------------------------------------------------->
List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();
Camera.Size previewSize = previewSizes.get(0);
//设置参数:宽高
parameters.setPreviewSize(previewSize.width,previewSize.height);
//设置参数:自动对焦
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
//5.设置相机参数
camera.setParameters(parameters);
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
currentPreviewShow = true;
}