Хорошо, поэтому у меня есть странная проблема... Моя цель - нарисовать поверх предварительного просмотра камеры. Я сейчас делаю это:
<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(), мои рисунки начинают отображаться. Таким образом, противоположное поведение другого пути.
Кроме того, это происходит только в первом цикле паузы/возобновления. Итак, первый способ, вы видите мои рисунки, пока вы не остановитесь и не возобновите приложение, а затем никогда больше. Во-вторых, вы не видите его сначала, но если вы приостановите/возобновите, то с этого момента вы увидите рисунок. Что в аду?
Насколько я понимаю, SurfaceViews любого типа не должен пересекаться с другими вещами, потому что люди Android не реализовали поддержку для этого. См. этот поток.