#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()
вызова.