在相机表面视图上绘图

时间:2011-05-17 20:15:16

标签: android xml layout android-camera

好吧所以我在这里遇到了一个奇怪的问题....我的目标是在相机预览之上画画。我现在正在这样做:

    <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 个答案:

答案 0 :(得分:2)

据我所知,任何类型的SurfaceView都不应该与其他东西重叠,因为Android人员没有实现对它的支持。请参阅this thread