Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android:相机预览的屏幕方向/旋转大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经创建了一个相机应用程序,我想让我的应用程序在所有4个可能的方向转换,并相应地更新相机预览.因为我已经使用我从以下复制的以下方法
@L_502_0@
public void updateCameraDisplay(int w,int h) {
        // set preview size and make any resize,rotate or
        // reformatTing changes here

        Log.i("CameraPreviews","updating camera orientation with w=" + w
                + " and h=" + h);
        Parameters parameters = camera.getParameters();
        Display display = getActivity().getWindowManager()
                .getDefaultDisplay();

        int rotation = getActivity().getresources().getConfiguration().orientation;
        Log.i("CameraPreviews","rotation is " + display.getRotation());
        if (display.getRotation() == Surface.ROTATION_0) {

            parameters.setPreviewSize(h,w);
            camera.setDisplayOrientation(0);
        }

        if (display.getRotation() == Surface.ROTATION_90) {
            parameters.setPreviewSize(w,h);
            camera.setDisplayOrientation(270);
        }

        if (display.getRotation() == Surface.ROTATION_180) {
            parameters.setPreviewSize(h,w);
            camera.setDisplayOrientation(180);
        }

        if (display.getRotation() == Surface.ROTATION_270) {
            parameters.setPreviewSize(w,h);
            camera.setDisplayOrientation(90);
        }

        try {
            camera.setParameters(parameters);
        } catch (Exception E) {
            e.printStackTrace();
        }
    }
}
@H_944_5@我已经调整了价值观,在三星Galaxy Tab2上进行测试,最终得到正确的方向,一切正常.当我尝试在htc一个手机它根本不工作!!!!!所有的方向是完全错误的!所以我得出结论,thre必须是2种类型的设备(或更多…请不要!),因为旋转表示屏幕已经从其“认”位置旋转了多少度,一些设备有一个认位置和其他另一个.我如何知道这个认轮播,并在我的@L_673_11@中相应地进行操作?
EJ:
defaultOrientation =一些@L_673_11@
if(defaultOrientation == 0)…
别….

@H_944_5@锁定屏幕方向是没有问题的.
目标api = 11
非常感谢

@H_944_5@编辑:
修改了我的@L_673_11@:

public void updateCameraDisplay(int w,"screen rotation is " + rotation);
        Log.i("CameraPreviews","display rotation is " + display.getRotation());
        if (display.getRotation() == Surface.ROTATION_0) {

            if (rotation == Configuration.oRIENTATION_LANDSCAPE) {
                parameters.setPreviewSize(h,w);
                camera.setDisplayOrientation(0);
            } else {
                parameters.setPreviewSize(h,w);
                camera.setDisplayOrientation(90);
            }
        }

        else if (display.getRotation() == Surface.ROTATION_90) {
            if (rotation == Configuration.oRIENTATION_PORTraiT) {
                parameters.setPreviewSize(w,h);
                camera.setDisplayOrientation(270);
            } else {
                parameters.setPreviewSize(w,h);
                //camera.setDisplayOrientation(0);
            }
        }

        else if (display.getRotation() == Surface.ROTATION_180) {
            if (rotation == Configuration.oRIENTATION_LANDSCAPE) {
            parameters.setPreviewSize(h,w);
            camera.setDisplayOrientation(180);
            }else {
                parameters.setPreviewSize(h,w);
                camera.setDisplayOrientation(270);
            }
        }

        else if (display.getRotation() == Surface.ROTATION_270) {
            if (rotation == Configuration.oRIENTATION_PORTraiT) {
                parameters.setPreviewSize(w,h);
                camera.setDisplayOrientation(90);
            } else {
                parameters.setPreviewSize(w,h);
                camera.setDisplayOrientation(180);
            }
        }

        try {
            camera.setParameters(parameters);
        } catch (Exception E) {
            e.printStackTrace();
        }
    }
@H_944_5@只要我们不以纵向模式旋转手机,就可以在htc一个和三星Galaxy Tab上更好地工作

解决方法

您需要虑的因素是:设备的方向,屏幕和相机之间的程度,假设您正在使用后置摄像头,以及是否使活动能够感测到方向改变. @H_944_5@一个重要的是,制造商实施的Camera HAL@L_673_11@是否符合Google的协议.

大佬总结

以上是大佬教程为你收集整理的Android:相机预览的屏幕方向/旋转全部内容,希望文章能够帮你解决Android:相机预览的屏幕方向/旋转所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。