Android前置摄像头预览具有更窄的角度

时间:2016-02-06 19:58:15

标签: android android-camera

我正在开发一款相机滤镜应用程序,我的目标是进行方形相机预览(裁剪,获得中心方块),并将照片拍成方形。

我正在使用Google API的getOptimalPreviewSize方法,该方法是:

private Camera.Size getOptimalPreviewSize(List<Camera.Size> sizes, int w, int h) {
    final double ASPECT_TOLERANCE = 0.1;
    double targetRatio = (double) w / h;
    if (sizes == null) return null;
    Camera.Size optimalSize = null;
    double minDiff = Double.MAX_VALUE;
    int targetHeight = h;
    // Try to find an size match aspect ratio and size
    for (Camera.Size size : sizes) {
        double ratio = (double) size.width / size.height;
        if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue;
        if (Math.abs(size.height - targetHeight) < minDiff) {
            optimalSize = size;
            minDiff = Math.abs(size.height - targetHeight);
        }
    }
    // Cannot find the one match the aspect ratio, ignore the requirement
    if (optimalSize == null) {
        minDiff = Double.MAX_VALUE;
        for (Camera.Size size : sizes) {
            if (Math.abs(size.height - targetHeight) < minDiff) {
                optimalSize = size;
                minDiff = Math.abs(size.height - targetHeight);
            }
        }
    }
    return optimalSize;
}

我在LG G4设备上测试,后置摄像头没问题。包括我的所有应用程序(Retrica,Instagram,设备和相机应用程序)都显示相同的预览。但是,当涉及前置摄像头时,Instagram和Retrica具有更宽的角度,而设备的相机应用程序和我的应用程序具有更窄的角度。

我不知道如何解决此问题,因为即使我将预览设置为1920 * 1080(前置摄像头的最大可用尺寸),预览就像是放大了&#34;。< / p>

有任何建议如何解决这个问题? (我的应用程序显示设备的相机应用程序显示的确切场景,但Instagram-Retrica显示有点缩小的场景。

谢谢。

(PS:我的应用程序正在SurfaceView上进行预览,这是典型的方式)

0 个答案:

没有答案