2011-04-01 27 views
0

我正在嘗試構建一個利用相機的Android應用程序,但僅在某些場合(通過對相機給出的幀進行一些圖像處理來定義)顯示相機的視圖。我已經能夠使用SurfaceHandler.CallBack執行圖像處理。其餘時間,我想要另一個用戶定義的視圖,其中顯示文本框和按鈕等,雖然相機仍然開着,功能,它的圖像被我的用戶定義的視圖遮擋。我該怎麼做呢?我無法爲相機和用戶定義的視圖使用多個活動,因爲活動暫停後必須立即釋放相機。有沒有一種方法可以在單個活動中在相機圖像頂部顯示多個全屏窗口/視圖?如何在android中的相機視圖之上顯示用戶定義的視圖?

+0

發佈您的佈局文件。您可以使用FrameLayout,其中包含Camera view(SurfaceHolder)和用戶定義的視圖。 – Karan 2011-04-01 06:26:14

+0

@Karan不使用佈局文件,只添加[here](http://ee368.stanford.edu/Android/ViewfinderEE368/ViewfinderEE368.java) – Aakar 2011-04-01 07:14:47

回答

0

使用此代碼添加到您的觀點:

FrameLayout mContentView = new FrameLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
mDrawOnTop = new DrawOnTop(this); 
mPreview = new Preview(this, mDrawOnTop); 
mContentView.addView(mPreview, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
mContentView.addView(mDrawOnTop, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
setContentView(mContentView); 

變化的高度和寬度按您的需求。

希望這會有所幫助。

+1

中的代碼,它添加了mDrawonTop視圖,並執行與之前代碼相同的操作。這個方法肯定會幫助我添加視圖;然而,問題是如何將我的佈局設置爲視圖對象,以便我可以添加它們?在setContentView中,我可以直接傳遞我的佈局ID,但這不適用於addView。 – Aakar 2011-04-02 01:10:40

+0

它與早期的代碼不相似。 FrameLayout允許你用left和top添加視圖爲0.其中,setContentView將它添加到ViewGroup中,addContentView將新View添加到ViewGroup中,並且你需要處理重疊的相關內容。 – Karan 2011-04-02 12:30:24

相關問題