2014-05-01 20 views
0

我想弄清楚如何移動連接到相機對象的表面視圖的xy座標(或者它可能是連接到表面視圖的相機,我不是確定這個措詞應該如何去做:P)。移動相機連接的表面視圖

我的意思是 - 設想一個顯示地圖的應用程序:地圖圖像比屏幕大得多,並且您可以通過在屏幕上滑動手指來「移動」地圖圖像。我想要這個相同的功能(不是滑動部分介意你),我想象它的工作原理是將相機縮放一點以使其大於屏幕,然後我希望能夠以編程方式調整其位置我可以根據需要轉換視圖,查看視圖的不同部分。我只是不太確定如何到達那裏。

有人可以指點我一個正確的方向嗎?

我有一個FrameLayout,它是一個SurfaceView。在代碼中我有一個Camera對象,一個SurfaceView對象和一個SurfaceHolder對象。我使用findViewById獲取SurfaceView,並使用SurfaceView類的getHolder()方法獲取SurfaceHolder,然後使用Camera對象調用setPreviewDisplay(holder)並將其傳遞給SurfaceHolder對象。相當簡單的東西:)

謝謝!

回答

1

系統合成器可以做到這一點,但我不確定應用程序是否有辦法告訴窗口管理器它想要什麼。

最簡潔的方法可能是將相機輸出發送到SurfaceTexture,然後使用OpenGL ES渲染紋理。這將讓你充分自由地移動,縮放,旋轉,無論如何。 Grafika有幾個例子,雖然沒有一個是你想要的完美契合(儘管它在待辦事項列表中)。 「顯示+拍攝相機」很近,但它總是使用全尺寸的矩形。

更新: Grafika現在可以做到這一點。請參閱「來自相機的紋理」活動。

+0

非常酷!非常感謝,我會看看並發現報告:) – Droidmon