видоискатель камеры

Автономный компоновочный и ориентированный на просмотр видоискатель для камеры

В этой таблице перечислены все артефакты в группе 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
Последнее обновление этой библиотеки: 16 июля 2025 г.

Объявление зависимостей

Чтобы добавить зависимость от 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> API requestSurfaceSession() теперь возвращают ListenableFuture<ViewfinderSurfaceSession> , который возвращает класс AutoCloseable , который при закрытии ведет себя так же, как вызов старого API ViewfinderSurfaceRequest.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 работает с представлениями.