【问题标题】:Camera2 preview stretchedCamera2 预览拉伸
【发布时间】:2017-01-25 22:15:11
【问题描述】:

在我的 Moto E 上,我希望我的预览是全屏的,因此我已通过覆盖 onMeasure 将纹理视图的尺寸设置为全屏,即 540*960,但使用 camera2 api 我得到的预览尺寸最接近的是768*432,相同的纵横比。谷歌示例建议“最初,来自 Camera2 API 的输出流图像将从传感器的方向旋转到本机设备方向,并且 TextureView 将默认缩放这些缓冲区以填充它的视图边界。如果纵横比和相对方向是对,这很好。”但即使在原生方向上,我也会得到拉伸的预览。即使我将Transform设置为Identity matrix,我也不知道预览是如何自动缩放以填满整个屏幕的。

【问题讨论】:

    标签: android android-camera android-camera2


    【解决方案1】:

    我也遇到了这个问题,是这样解决的:

    重新设置surfaceview参数(宽度和高度)。

    ViewTreeObserver observer = mSurfaceView.getViewTreeObserver();
    observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() 
    {
        @Override
        public void onGlobalLayout() 
        {
            FrameLayout.LayoutParams surfaceParams = (FrameLayout.LayoutParams) mSurfaceView.getLayoutParams();
            surfaceParams.height = screenHeight;
            surfaceParams.width = screenWidth;
            mSurfaceView.setLayoutParams(surfaceParams);
    
            mSurfaceView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多