Android:在SurfaceView中缩放和翻译相机预览流

时间:2016-09-01 09:48:42

标签: java android surfaceview

我正在使用SurfaceView在屏幕上显示相机预览流。现在我想使用在线计算的矩形区域(例如,从(0.2,0.3)到(0.5,0.6)的区域)来填充整个预览区域,通过拉伸和移动预览流(因此不需要更改拍摄的照片)后来从相机)。

在IOS上,我通过将变换应用于视图实现了相同的目标。在Android上,我想我应该分别使用SurfaceView.setScaleX / Y和SurfaceView.setTranslationX / Y来实现拉伸和移位。但是,当我试用它时,似乎任何一种方法都会导致类似的结果:翻译预览。我甚至尝试过setRotation,它令人惊讶地将预览整个点移动到整个点,而不是像你正在倾斜一样“旋转”它。

我哪里弄错了?关于如何实现目标的任何建议?

1 个答案:

答案 0 :(得分:0)

虽然我仍然不明白为什么缩放和平移会产生类似的结果,但我设法通过改变视图的左右两侧和顶部和底部(setLeft / Right / etc等,有效拉伸和移动)来获得我想要的东西图片)。不优雅,但有效。