我正在使用SurfaceView在屏幕上显示摄像头预览流。现在我想使用一个在线计算的矩形区域(例如,从(0.2,0.3)到(0.5,0.6)的区域)来填充整个预览区域,通过拉伸和移动预览流(这样就不会改变后来从相机拍摄的照片)。
在IOS上,我通过将我的转换应用于视图实现了同样的目标。在Android上,我想我应该分别使用SurfaceView.setScaleX/Y和SurfaceView.setTranslationX/Y来实现拉伸和移动。然而,当我尝试它时,似乎这两种方法都会产生类似的结果:翻译预览。我甚至尝试过setRotation,它令人惊讶地将预览作为一个整体围绕着点移动,而不是像倾斜头部一样“旋转”它。
我哪里错了?对如何实现我的目标有什么建议吗?
发布于 2016-09-02 08:56:13
虽然我仍然不明白为什么缩放和平移会导致类似的结果,但我设法通过改变视图的左侧、右侧、顶部和底部(setLeft/Right/等,有效地拉伸和移动图像)来获得我想要的结果。不是很优雅,但很管用。
https://stackoverflow.com/questions/39268198
复制相似问题