2011-05-17 101 views
1

好吧,我在這裏有一個奇怪的問題....我的目標是繪製在相機預覽之上。我目前正在這樣做:在相機表面視圖上繪圖

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1"> 

    <com.brayden.icamera.DrawingSurfaceView 
     android:id="@+id/drawingSurface" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

    <SurfaceView 
     android:id="@+id/cameraSurface" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</FrameLayout> 

在DrawingSurfaceView上繪圖使我可以在預覽頂部繪圖...起初。但。如果調用onPause(),然後是onResume(),則我的繪圖不再顯示在預覽之上。

更奇怪的,如果我這樣做:

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1"> 

    <SurfaceView 
     android:id="@+id/cameraSurface" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

    <com.brayden.icamera.DrawingSurfaceView 
     android:id="@+id/drawingSurface" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</FrameLayout> 

翻轉他們堆放的方式,那麼當應用程序啓動時,你不能看到預覽的頂部,我的畫,但是,如果onPause()然後調用onResume(),然後我的繪圖開始顯示。因此,另一種方式完全相反的行爲。

此外,這隻發生在第一個暫停/恢復週期。所以第一種方式,你看到我的圖紙,直到你暫停和恢復應用程序,然後再也不會。第二種方法,你一開始並沒有看到它,但是如果你暫停/恢復,那麼從那時起你就會看到圖畫。什麼在地獄?

+1

您是否嘗試過使用Hierarchy Viewer(http://developer.android.com/guide/developing/tools/hierarchy-viewer.html)查看暫停/恢復週期是否更改您的佈局? – 2011-05-17 20:31:00

+0

是的,它顯示了我所期望的順序中的所有內容,它不會改變它們堆疊的順序。 – Brayden 2011-05-17 20:34:55

回答

2

這是我的理解,任何類型的SurfaceViews不應該與其他事物重疊,因爲Android人沒有實現支持。見this thread

+0

那麼在表面視圖頂部繪製什麼建議?我應該只在表面視圖的頂部放置一個ImageView並使用它嗎? – Brayden 2011-05-17 20:37:10

+0

好的。改爲使用ImageView並解決了我的問題。不知道多個SurfaceView的東西。謝謝! – Brayden 2011-05-17 20:50:05