首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camera2预览已拉伸

Camera2预览已拉伸
EN

Stack Overflow用户
提问于 2017-01-26 06:15:11
回答 1查看 742关注 0票数 0

在我的Moto E上,我希望我的预览是全屏的,因此我通过覆盖onMeasure将纹理视图的尺寸设置为全屏,即540*960,但是使用camera2 api,我得到的预览尺寸的最接近匹配是768*432,具有相同的纵横比。Google sample建议“最初,从Camera2应用程序接口输出的流图像将从传感器的方向旋转到本机设备方向,TextureView将默认缩放这些缓冲区以填充其视图边界。如果纵横比和相对方向正确,这是很好的。”但即使是在原生方向上,我也得到了紧张的预览。即使我setTransform到标识矩阵,我也不知道预览如何自动缩放以填满整个屏幕。

EN

回答 1

Stack Overflow用户

发布于 2017-09-13 15:08:03

我也遇到了这个问题,并这样解决了它:

重新设置表面视图参数(宽度和高度)。

代码语言:javascript
复制
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);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41862663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档