0

我碰到以下問題: 我正在使用SurfaceHolder在SurfaceView上顯示CameraPreview,如Camera Dev Guide所述。所以它提到我必須像這樣設置SurfaceHolder的類型;在SurfaceView中顯示CameraPreview和自定義視圖

// deprecated setting, but required on Android versions prior to 3.0 
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

不幸後,設置mHolder.lockCanvas()會失敗,所以我不能對畫布畫了。 是否有可能在單個SurfaceView上繪製PreviewFrame以及自己的Views?

如果不是,是否有可能渲染兩個SurfaceView,以便攝像機將用作背景,第二個SurfaceView將渲染它的任何視圖'頂部'? 運行此最佳方法是什麼?

回答

1

是的,我有艾雷迪這樣做。你可以做的是,你可以創建一個相對佈局,然後你可以添加你的表面視圖到適當的佈局參數。那麼你可以使用適當的佈局參數在相同的相對佈局上添加另一個視圖。

+0

因此,它不可能在一個表面視圖中渲染它,我必須採用兩個SurfaceViews? – 2012-04-27 07:38:02

+0

如果您只有一個表面視圖,那麼只需添加第二個表面視圖就可以了,實際上您正在將相關佈局中的所有內容都添加到我已告訴您的該技術中。 – 2012-04-27 10:00:13

+0

剛纔我已經修正了一些glview在完整屏幕背景上的問題,並且相機預覽位於屏幕角落,小尺寸和一些按鈕就在那裏。如果你的情況是相似的,那麼可能是我可以幫你。 – 2012-04-27 11:28:43