int PreviewWidth = 0;int PreviewHeight = 0;parameters = mCamera.getParameters();// 选择合适的预览尺寸List<Camera.Size> sizeList = parameters.getSupportedPreviewSizes();if (sizeList.size() > 1) {Iterator<Camera.Size> itor = sizeList.iterator();for (int i = 0; i < sizeList.size(); i++) {Camera.Size cur = itor.next();Log.d("alen", "width=" + cur.width + "hight=" + cur.height + "\n");}while (itor.hasNext()) {Camera.Size cur = itor.next();if (cur.width >= PreviewWidth&& cur.height >= PreviewHeight) {PreviewWidth = cur.width;PreviewHeight = cur.height;break;}}}//设置照片预览尺寸parameters.setPreviewSize(PreviewWidth, PreviewHeight);parameters.setJpegQuality(85);//设置照片质量 1-100parameters.setPictureFormat(PixelFormat.JPEG);//设置照片输出的格式//设置照片尺寸parameters.setPictureSize(PreviewWidth, PreviewHeight); parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);//1连续对焦mCamera.setParameters(parameters);mCamera.startPreview();SAFECAMERASTATUS = true;//相机安全mCamera.cancelAutoFocus();// 2如果要实现连续的自动对焦,这一句必须加上
设置相机拍照参数的时候遇到了RuntimeException: setParameters failed错误,定位到问题是获得的PreviewWidth和PreviewHeight为0,照片预览尺寸和照片尺寸都被设置为0了,所以会报错。
解决方法一:把照片预览尺寸和照片尺寸设置为固定的值 小米6PreviewWidth=1280 PreviewHeight=720
小米3PreviewWidth=800 PreviewHeight=600 其他机型未知
解决方法二:把setPreviewSize和setPictureSize这两个方法注释掉
目前没有找到更好的解决方法,求高手赐教!