当前位置: 首页>>代码示例>>Java>>正文


Java CameraFacing类代码示例

本文整理汇总了Java中com.google.zxing.client.android.camera.open.CameraFacing的典型用法代码示例。如果您正苦于以下问题:Java CameraFacing类的具体用法?Java CameraFacing怎么用?Java CameraFacing使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CameraFacing类属于com.google.zxing.client.android.camera.open包,在下文中一共展示了CameraFacing类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: initFromCameraParameters

import com.google.zxing.client.android.camera.open.CameraFacing; //导入依赖的package包/类
/**
 * Reads, one time, values from the camera that are needed by the app.
 */
void initFromCameraParameters(OpenCamera camera) {
    Camera.Parameters parameters = camera.getCamera().getParameters();
    WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = manager.getDefaultDisplay();

    int displayRotation = display.getRotation();
    int cwRotationFromNaturalToDisplay;
    switch (displayRotation) {
        case Surface.ROTATION_0:
            cwRotationFromNaturalToDisplay = 0;
            break;
        case Surface.ROTATION_90:
            cwRotationFromNaturalToDisplay = 90;
            break;
        case Surface.ROTATION_180:
            cwRotationFromNaturalToDisplay = 180;
            break;
        case Surface.ROTATION_270:
            cwRotationFromNaturalToDisplay = 270;
            break;
        default:
            // Have seen this return incorrect values like -90
            if (displayRotation % 90 == 0) {
                cwRotationFromNaturalToDisplay = (360 + displayRotation) % 360;
            } else {
                throw new IllegalArgumentException("Bad rotation: " + displayRotation);
            }
    }
    Log.i(TAG, "Display at: " + cwRotationFromNaturalToDisplay);

    int cwRotationFromNaturalToCamera = camera.getOrientation();
    Log.i(TAG, "Camera at: " + cwRotationFromNaturalToCamera);

    // Still not 100% sure about this. But acts like we need to flip this:
    if (camera.getFacing() == CameraFacing.FRONT) {
        cwRotationFromNaturalToCamera = (360 - cwRotationFromNaturalToCamera) % 360;
        Log.i(TAG, "Front camera overriden to: " + cwRotationFromNaturalToCamera);
    }

    cwRotationFromDisplayToCamera =
            (360 + cwRotationFromNaturalToCamera - cwRotationFromNaturalToDisplay) % 360;
    Log.i(TAG, "Final display orientation: " + cwRotationFromDisplayToCamera);
    if (camera.getFacing() == CameraFacing.FRONT) {
        Log.i(TAG, "Compensating rotation for front camera");
        cwNeededRotation = (360 - cwRotationFromDisplayToCamera) % 360;
    } else {
        cwNeededRotation = cwRotationFromDisplayToCamera;
    }
    Log.i(TAG, "Clockwise rotation from display to camera: " + cwNeededRotation);

    Point theScreenResolution = new Point();
    display.getSize(theScreenResolution);
    screenResolution = theScreenResolution;
    Log.i(TAG, "Screen resolution in current orientation: " + screenResolution);
    cameraResolution = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution);
    Log.i(TAG, "Camera resolution: " + cameraResolution);
    bestPreviewSize = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution);
    Log.i(TAG, "Best available preview size: " + bestPreviewSize);

    boolean isScreenPortrait = screenResolution.x < screenResolution.y;
    boolean isPreviewSizePortrait = bestPreviewSize.x < bestPreviewSize.y;

    if (isScreenPortrait == isPreviewSizePortrait) {
        previewSizeOnScreen = bestPreviewSize;
    } else {
        previewSizeOnScreen = new Point(bestPreviewSize.y, bestPreviewSize.x);
    }
    Log.i(TAG, "Preview size on screen: " + previewSizeOnScreen);
}
 
开发者ID:AlexMofer,项目名称:ProjectX,代码行数:73,代码来源:CameraConfigurationManager.java


注:本文中的com.google.zxing.client.android.camera.open.CameraFacing类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。