在做自定义相机时,在网上找了一些demo,发现预览时候图片拉伸,网上很多解决办法是将相机设置为mCamera.setDisplayOrientation(-90);然而这个办法并没有用,我也没做深究,然后自己想了2个办法(看不明白的可以直接留言评论等方式,我很乐意为大家解答):
第一个解决办法:
因为打开相机时候,相机时横屏的,你可以把布局弄成横屏的,然后打开相机时候强制Activity为横屏,这样就不会出现拉伸了;
第二个解决办法:
虽然在预览时候已经做了处理,由于相机时横屏的,所以预览的图片的宽高正是显示的高宽,需要调换一下,这样处理处理的预览图才是正确的,具体看一下demo,这是我网上拿下来的自定义surfaceView的demo直接改动的;
//相机预览界面类 public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder mHolder; private Camera mCamera; public CameraPreview(Context context, Camera camera) { super(context); mCamera = camera; mHolder = getHolder(); mHolder.setFormat(PixelFormat.OPAQUE); mHolder.addCallback(this); // deprecated setting, but required on Android versions prior to 3.0 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } @Override public void surf