在surfaceview的全屏照片

时间:2015-05-12 01:28:36

标签: android fullscreen surfaceview

我需要onTouchFocus全屏surfaceview,如下例所示: https://github.com/jayrambhia/Touch2Focus 但它只能在横向方向上正常工作(纵向视图中的surfaceview更改分辨率不如标准的Android相机应用程序那么精细)。 任何想法如何解决它? 感谢。

1 个答案:

答案 0 :(得分:0)

onCreate()

中添加此代码
 Window window = getWindow();
        if (Build.VERSION.SDK_INT < 16)
            window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        else
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

这会将您的活动窗口全屏设置为Android相机应用程序。 另外,我在surfaceChanged(SurfaceHolder holder, int format, int width, int height)方法中执行以下操作:

        if (height > width)
            _camera.setDisplayOrientation(90);
        else
            _camera.setDisplayOrientation(0);

        // Setting BestPreviewSize for Current Pixels
        Camera.Parameters p = _camera.getParameters();

        Camera.Size size = null;
        List<Camera.Size> list = parameters.getSupportedPreviewSizes();

        size = list.get(0);

        for(int i = 1; i < list.size(); i++) {
            if((list.get(i).width * list.get(i).height) > (size.width * size.height))
            size = list.get(i);
        }

        if(size != null) {
            p.setPreviewSize(size.width, size.height);
            _camera.setParameters(p);
        }
        _camera.startPreview();

这会获得支持的预览尺寸列表,并选择最接近屏幕尺寸的尺寸,并将其设置为Camera Parameter。 干杯:)