问题:项目中用了自定义Camera,其中的SurfaceView 里的预览图像被拉长了。

原因:相机所使用的Camera.parameters 的PictureSize 比例与SurfaceView 的比例不一致

解决方案:

1.从相机属性中选取一个合适比例的图像参数.并通知Camera  mCamera.setParameters(mParams);

/** * @param sizes 相机支持的尺寸 * @param whRadio 宽高比 * @return 合适的Size */public  Size getPropPreviewSize(List sizes,float whRadio){Collections.sort(sizes, sizeComparator);//排序一下int i = 0;for (Size size : sizes) {float radio=(float)size.width / size.height;if (Math.abs(radio-whRadio)
2.在SurfaceView 的surfaceChanged 方法中设置SurfaceView 的大小:
WindowManager wm = (WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);int w = wm.getDefaultDisplay().getWidth();mSurfaceView.setLayoutParams(new FrameLayout.LayoutParams(x,x/whRadio));//  x/whRadio:x除以宽高比得到高度h

3.重新开启预览

更多相关文章

  1. Android自定义照相机实现 拍照 录像
  2. SuperMap iClient 6R(2012) SP3新特性预览
  3. Android(安卓)Camera HAL3中预览preview模式下的控制流
  4. Android——camera摄像头
  5. opencv在android预览上实现人脸识别(4)
  6. android桌面预览效果
  7. xe5 android 调用照相机获取拍的照片
  8. Android开发必备偷懒神器之比例控件(正方形、比例矩形)、点击效
  9. Android自定义相机实现自动对焦和手动对焦

随机推荐

  1. android MediaPlayer和VideoView的使用
  2. android in practice_Displaying splash
  3. ConstraintLayout使用笔记
  4. Augmented reality
  5. sqlite的使用及其框架
  6. ndk下载地址
  7. Android(安卓)IPC Compared with Java Na
  8. Could not find com.android.tools.build
  9. android-Java中实现删除文件 - 随心
  10. Android(安卓)多线程下载