0

我使用了这个库https://github.com/pedrovgs/DraggablePanel,我在顶部有一个 youtube 片段,在底部有一个相机预览(在片段内)。

我希望我的相机预览只显示相机底部的一半(我不拍照,我只是预览前置相机的底部就像一面镜子)如何裁剪我的相机预览?谢谢大家的帮助!

我尝试设置 SurfaceView height=screenwidth 和 parentView height=my_height 但我的顶部片段(youtube 片段)显示为 SurfaceView

4

2 回答 2

0

您无法在 SurfaceView 中裁剪相机预览图像。

您可以隐藏 SurfaceView 的上半部分,只需将其与其他视图(普通 XML 布局功能)叠加即可。但要小心:SurfaceView 的行为并不完全像“真实”视图,而且它并不总是“按照视图层次结构的规则行事”。通常,您可以通过在onResume().

另一种方法是切换到TextureView,或直接使用 SurfaceTexture 并将其显示在您选择的 OpenGL 上下文中。在后一种情况下,您可以使用其他一些 OpenGL 对象部分覆盖相机预览纹理,例如在相同的 OpenGL 上下文中显示解码的视频流。

于 2016-11-28T09:04:32.520 回答
0

将固定高度(例如 200dp)设置为surfaceView并将其对齐到父级(屏幕)的底部。并相应地设置相机预览大小

 Camera.Parameters params = camera.getParameters();
 params.setPreviewSize(your_width,your_height);
 camera.setParameters(params);
于 2016-11-28T06:12:30.003 回答