2011-05-17 108 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