Рисование поверх поверхности камеры

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
    Вы пытались использовать Средство просмотра иерархии ( developer.android.com/guide/developing/tools/… ), чтобы увидеть, меняет ли цикл приостановки / возобновления ваш макет?
  • 0
    Да, он показывает все в том порядке, в котором я его ожидаю, это не меняет порядок, в котором они сложены.
Теги:
layout
android-camera

1 ответ

2
Лучший ответ

Насколько я понимаю, SurfaceViews любого типа не должен пересекаться с другими вещами, потому что люди Android не реализовали поддержку для этого. См. этот поток.

  • 0
    Итак, каков способ рисования поверх вида поверхности? Должен ли я просто поместить ImageView поверх вида поверхности и использовать его вместо этого?
  • 0
    Хорошо. Вместо этого использовал ImageView и решил мою проблему. Не знал о множественной функции SurfaceView. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню