видоискатель камеры
В этой таблице перечислены все артефакты в группе androidx.camera-viewfinder
.
Артефакт | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
видоискатель-композиция | - | - | 1.5.0-бета03 | 1.4.0-альфа13 |
видоискатель-ядро | - | - | 1.5.0-бета03 | 1.4.0-альфа13 |
видоискатель-вид | - | - | 1.5.0-бета03 | 1.4.0-альфа13 |
Объявление зависимостей
Чтобы добавить зависимость от camera-viewfinder, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
классный
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03" implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03" implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03" }
Котлин
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03") implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03") implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.5
Версия 1.5.0-beta03
16 июля 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03
и androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03
. Версия 1.5.0-beta03 содержит эти коммиты .
Исправления ошибок
- Режим
ImplementationMode
по умолчанию дляViewfinder
(как Compose, так и View-based) теперь интеллектуально выбирает междуEXTERNAL
(для повышения производительности) иEMBEDDED
(для совместимости со старыми API/нестандартными устройствами). Это поведение по-прежнему можно переопределить явными настройками вViewfinderSurfaceRequest
или атрибутах XML (в View-based API). ( Iecd3a ) - Улучшено управление сеансом Surface за счет сохранения
ViewfinderSurfaceSession
в течение всех жизненных циклов создания/уничтожения поверхности при использовании TextureView или SurfaceView в API 29+. ( I112d9 ) -
Viewfinder
теперь обеспечивает своевременное освобождение поверхностей, только когда они больше не используются сеансом, а не всегда при уничтожении компонуемого объекта. ДляEXTERNAL
(SurfaceView
) это поведение в настоящее время доступно только в API 29+. ДляEMBEDDED
(TextureView
) это поведение присутствует на всех уровнях API. ( I9a03f ) -
Viewfinder
теперь корректно обрабатывает замену поверхности в таких сценариях, как случай, когдаEXTERNAL
видоискатель на уровне API 28 или ниже перемещается за пределы экрана или еслиViewfinder
(с любымImplementationMode
) является частьюmoveableContentOf()
. ( I79432 ) - Видоискатель Composable
Viewfinder
теперь корректно работает сPager
в Compose. Это изменение обеспечивает успешный сброс Composable путём реализации обратного вызоваonReset
вAndroidView
, поддерживающего какEMBEDDED
, так иEXTERNAL
реализации. ( I0d9be ) - Исправлена ошибка в Android 10/11, из-за которой
EXTERNAL
Viewfinder
мог выглядеть растянутым или некорректным из-за слишком раннего применения операций преобразования (например, масштабирования или переноса). Теперь система ожидает создания поверхности, прежде чем применять эти преобразования на этапе макета, что обеспечивает корректный вывод. ( Icc77c )
Версия 1.5.0-beta02
4 июня 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02
и androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02
. Версия 1.5.0-beta02 содержит эти коммиты .
Версия 1.5.0-beta01
7 мая 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01
и androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01
. Версия 1.5.0-beta01 содержит эти коммиты .
- Это первая официальная бета-версия видоискателей с режимами просмотра и композиции, которые достаточно гибкие для использования с Camera2. Если вы ищете видоискатель или видоискатель с режимом композиции для использования с CameraX, см.
PreviewView
иCameraXViewfinder
.
Новые функции
-
ContentScale
иAlignment
теперь можно использовать в видоискателе на основе компоновки для масштабирования и размещения отображаемой поверхности в ее контейнере, аналогично тому, как ведет себяandroidx.compose.foundation.Image
. ( Ibcea3 )
Изменения API
-
TransformationInfo
теперь имеет значения по умолчанию для всех аргументов. Это позволит создавать видоискатели безTransformationInfo
, которые по умолчанию будут иметь поворот источника на 0, без зеркального отражения источника и без рамки кадрирования. ( I2b1b2 ) - Composable Viewfinder теперь принимает завершающую лямбда-функцию для получения сеанса Surface, аналогично
AndroidExternalSurface
. Предоставленная лямбда-функция используетViewfinderInitScope
в качестве приёмника, что позволяет установить обратный вызов для получения новых сеансов Surface. Эти сеансы Surface автоматически освобождают ресурсы, удерживаемые Viewfinder, при выходе из области действия. ( Ib2b0d ) -
ViewfinderSurfaceRequest.Builder.populateFromCharacteristics
теперь удалён и заменён эквивалентным набором статических API, которые можно использовать для генерацииTransformationInfo
, что даст то же преобразование, что иpopulateFromCharacteristics
. Эти статические методы добавлены в классCamera2TransformationInfo
. ( Idc6af ) -
ViewfinderSurfaceRequest
больше не включает асинхронные API для получения поверхности. Теперь это неизменяемый тип данных. API для получения поверхности теперь перенесены в видоискатель. ( I30127 ) -
CameraViewfinder
был переименован вViewfinderView
, чтобы название совпадало с названием составного видоискателя и указывало на то, что его можно использовать не только с камерами. ( Id9e6b ) - Классы из
viewfinder-view
были перенесены в подпакетandroidx.camera.viewfinder.view
из пакетаandroidx.camera.viewfinder
. ( I6cb44 ) - В View-based Viewfinder добавлены новые API, позволяющие настраивать поворот исходного изображения, зеркальное отражение и рамку кадрирования. Этот класс
TransformationInfo
аналогичен классу, используемому Compose-based Viewfinder. ( I907c3 ) - Видоискатель, основанный на представлении, теперь использует новые API
ViewfinderSurfaceRequest
, которые больше не обрабатывают ответ Surface. Вместо возвратаListenableFuture<Surface>
APIrequestSurfaceSession()
теперь возвращаютListenableFuture<ViewfinderSurfaceSession>
, который возвращает классAutoCloseable
, который при закрытии ведет себя так же, как вызов старого APIViewfinderSurfaceRequest.markSurfaceSafeToRelease()
. Это обеспечивает более чёткое разделение обязанностей между запросом и ответом Surface. ( I19041 )
Версия 1.4
Версия 1.4.0-альфа13
26 февраля 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13
. Версия 1.4.0-alpha13 содержит эти коммиты .
Версия 1.4.0-альфа12
15 января 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12
. Версия 1.4.0-alpha12 содержит эти коммиты .
Новые функции
- Обновление
compileSdk
до версии 35 для использования API, связанного с Android 15. Приложениям, использующим библиотеки CameraX, также потребуется обновить настройки конфигурацииcompileSdk
. ( Ic80cd ) - Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict
(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I7bcd7 , b/326456246 )
Версия 1.4.0-альфа11
11 декабря 2024 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11
. Версия 1.4.0-alpha11 содержит эти коммиты .
Изменения API
- Классы
viewfinder-core
были перемещены в пакеты, соответствующие библиотеке, к которой они принадлежат. ( I431c6 ) -
CameraViewfinder.ScaleType
был перемещен вviewfinder-core
, чтобы его можно было повторно использовать с композицией ( I87ef1 ). - Устаревшие классы
CameraViewfinder
удалены. Используйте новые API, обеспечивающие эквивалентную функциональность. ( I6e59a )
Версия 1.4.0-альфа10
30 октября 2024 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10
. Версия 1.4.0-alpha10 содержит эти коммиты .
Версия 1.4.0-альфа09
2 октября 2024 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09
. Версия 1.4.0-alpha09 содержит эти коммиты .
Версия 1.4.0-альфа08
4 сентября 2024 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08
и androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08
. Версия 1.4.0-alpha08 содержит эти коммиты .
Новые функции
С обновлением до версии 1.4.0-alpha08 артефакт CameraX Viewfinder был перенесён в отдельную библиотечную группу. Это изменение необходимо для улучшения модульности и удобства поддержки библиотеки CameraX.
Если ранее вы зависели от androidx.camera:camera-viewfinder
, androidx.camera:camera-viewfinder-compose
или androidx.camera:camera-viewfinder-core
, вам необходимо перевести свои зависимости на следующие:
-
androidx.camera:camera-viewfinder
->androidx.camera.viewfinder:viewfinder-view
-
androidx.camera:camera-viewfinder-compose
->androidx.camera.viewfinder:viewfinder-compose
-
androidx.camera:camera-viewfinder-core
->androidx.camera.viewfinder:viewfinder-core
Для этого перехода не потребуется никаких изменений в коде. Старые координаты Maven для видоискателя больше не будут обновляться.
Кроме того, если вы используете Compose с CameraX, в альфа-версии доступна новая библиотека Compose-first: androidx.camera:camera-compose
. Она предоставляет компонуемый компонент CameraXViewfinder
— видоискатель, работающий на основе компоновки и адаптирующий SurfaceRequest
CameraX к Compose, аналогично тому, как PreviewView
работает с представлениями.