相关疑难解决方法(0)

Android Camera Preview Stretched

我一直在努力在Android上制作自定义相机活动,但是当旋转相机时,表面视图的纵横比会变得混乱.

在我的oncreate活动中,我设置了framelayout,它保存了显示摄像机参数的表面视图.

//FrameLayout that will hold the camera preview
        FrameLayout previewHolder = (FrameLayout) findViewById(R.id.camerapreview);

        //Setting camera's preview size to the best preview size
        Size optimalSize = null;
        camera = getCameraInstance();
        double aspectRatio = 0;
        if(camera != null){
            //Setting the camera's aspect ratio
            Camera.Parameters parameters = camera.getParameters();
            List<Size> sizes = parameters.getSupportedPreviewSizes();
            optimalSize = CameraPreview.getOptimalPreviewSize(sizes, getResources().getDisplayMetrics().widthPixels, getResources().getDisplayMetrics().heightPixels);
            aspectRatio = (float)optimalSize.width/optimalSize.height;
        }

        if(optimalSize!= null){
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, (int)(getResources().getDisplayMetrics().widthPixels*aspectRatio));
            previewHolder.setLayoutParams(params);
            LayoutParams surfaceParams = new LayoutParams(LayoutParams.MATCH_PARENT, (int)(getResources().getDisplayMetrics().widthPixels*aspectRatio));
            cameraPreview.setLayoutParams(surfaceParams);

        }

        cameraPreview.setCamera(camera);

        //Adding the preview …
Run Code Online (Sandbox Code Playgroud)

android preview aspect-ratio surfaceview android-camera

129
推荐指数
5
解决办法
11万
查看次数

如何拍摄与预览尺寸相同的宽高比?

标题中所有答案的99.9%如下:

当你搜索List<Camera.Size>,由Camera.Parameters#getSupportedPictureSizes()提供时,尝试找到与通过Camera.Parameters.html#setPreviewSize(int,int)设置的相机预览大小相同的宽高比的大小,或者尽可能接近尽可能.

这很好,但是如果我找不到与预览尺寸相同的宽高比的图片尺寸(Android不能保证对于相机支持的每个预览尺寸都有相同宽高比的图片尺寸),和所有其他图片尺寸(尽可能接近)只是拉伸我的照片,如此这个问题?即使在Camera.Parameters中设置的图片大小和预览大小具有不同的宽高比,我如何制作与预览完全相同的宽高比的照片?

android aspect-ratio android-camera

6
推荐指数
1
解决办法
2235
查看次数