移动相机附加的表面视图

时间:2014-05-01 15:19:01

标签: android android-camera surfaceview

我试图弄清楚如何移动附着在相机对象上的表面视图的xy坐标(或者它可能是连接到表面视图的相机,我不是确定该措辞应该如何:P)。

我的意思是 - 想象一个显示地图的应用程序:地图图像比屏幕大得多,您可以“移动”#34;通过在屏幕上滑动手指来映射地图图像。我想要这个相同的功能(不是刷卡部分介意你),我想象它的工作原理是我稍微缩放相机使其比屏幕大,然后我想能够调整它'以编程方式定位,以便我可以根据需要移动视图,查看视图的不同部分。我不太确定如何到达那里。

有人可以指出我正确的方向吗?

我有一个FrameLayout,其中有一个SurfaceView。在代码中我有一个Camera对象,一个SurfaceView对象和一个SurfaceHolder对象。我使用findViewById抓取SurfaceView,然后使用SurfaceView类的getHolder()方法获取SurfaceHolder,然后使用Camera对象调用setPreviewDisplay(holder)并将其传递给SurfaceHolder对象。相当简单的东西:)

谢谢!

1 个答案:

答案 0 :(得分:1)

系统合成器可以做到,但我不确定应用程序是否有办法告诉Window Manager它想要什么。

最干净的方法可能是将Camera输出发送到SurfaceTexture,然后使用OpenGL ES渲染纹理。这将允许您完全自由地移动,缩放,旋转等等。 Grafika有一些例子,但没有一个是你想要的完美契合(虽然它在待办事项列表中)。 “显示+捕捉相机”很接近,但它总是使用全尺寸矩形。

更新: Grafika现在就这样做了。请参阅“相机纹理”活动。