Поместите фрагмент камеры CWAC внутри другого фрагмента для размера предварительного просмотра

#android #android-fragments #commonsware-cwac

#Android #android-фрагменты #общедоступное программное обеспечение-cwac

Вопрос:

Я хотел бы разместить окно предварительного просмотра внутри действия в указанной позиции. Я попытался добавить фрагмент камеры непосредственно в действие. Откроется предварительный просмотр. Но при «съемке» произойдет сбой, и предварительный просмотр должен быть открыт первым.

Как бы я разместил предварительный просмотр камеры в определенной позиции или внутри другого фрагмента для позиционирования?

Ответ №1:

Но при «съемке» произойдет сбой, и предварительный просмотр должен быть открыт первым.

Возможно, это отражает ошибку где-то в библиотеке. Вы уверены, что не звоните takePicture() слишком рано? Если он привязан к кнопке, обычно предварительный просмотр отображается первым. У меня есть нерешенная проблема с добавлением улучшенных обратных вызовов, чтобы сообщить вам, когда безопасно вызывать takePicture() (например, для включения / выключения кнопки).

Как бы я расположил предварительный просмотр камеры в определенном положении

Точно так же, как и любой другой виджет: поместите CameraFragment или CameraView внутри некоторого контейнера с android:layout_* атрибутами (плюс атрибуты в контейнере), которые контролируют его положение.

или внутри другого фрагмента

Я не пробовал CameraFragment с вложенными фрагментами. Теоретически, это должно работать из коробки на уровне API 17 . Вложенные фрагменты до этого требуют резервного копирования фрагментов пакета поддержки Android, поэтому вы захотите клонировать CameraFragment и изменить его суперкласс на android.support.v4.app.Fragment и исправить другие методы по мере необходимости. Если вы используете ActionBarSherlock, CameraFragment в camera-v9 проекте используется SherlockFragment , который, в свою очередь, использует backport фрагмента.

Комментарии:

1. Я посмотрю и создам отдельный проект, чтобы посмотреть, не выйдет ли он из строя. Но я вижу изображение предварительного просмотра в течение нескольких секунд, прежде чем нажать takePicture. Возможно, я просто не разбираюсь в Android и использую неправильный фрагмент или что-то в этом роде. Я вернусь с журналом.

2. @user2130951: «Но я вижу изображение предварительного просмотра в течение нескольких секунд, прежде чем нажать takePicture» — этого должно быть более чем достаточно. Другой риск заключается в вызове takePicture() до повторного запуска предварительного просмотра после предыдущего takePicture() вызова.