видоискатель камеры
В этой таблице перечислены все артефакты в группе androidx.camera-viewfinder .
| Артефакт | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
|---|---|---|---|---|
| видоискатель-композиция | 1.5.1 | - | - | 1.6.0-альфа01 |
| видоискатель-ядро | 1.5.1 | - | - | 1.6.0-альфа01 |
| видоискатель-вид | 1.5.1 | - | - | 1.6.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от camera-viewfinder, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
классный
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01" }
Котлин
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.
Более подробную информацию см. в документации по системе отслеживания проблем .
Версия 1.6
Версия 1.6.0-альфа01
22 октября 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01 , androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01 и androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит эти коммиты .
Изменения API
- Реализован
ImplementationModeвидоискателя по умолчанию через новый публичный APIViewfinderDefaults.implementationMode. Теперь он используется по умолчанию как дляViewfinderView, так и для компонуемого объектаViewfinder. ( Ic3f52 )
Версия 1.5
Версия 1.5.1
8 октября 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.1 , androidx.camera.viewfinder:viewfinder-core:1.5.1 и androidx.camera.viewfinder:viewfinder-view:1.5.1 . Версия 1.5.1 содержит эти коммиты .
Версия 1.5.0
10 сентября 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.0 , androidx.camera.viewfinder:viewfinder-core:1.5.0 и androidx.camera.viewfinder:viewfinder-view:1.5.0 . Версия 1.5.0 содержит эти коммиты .
Важные изменения по сравнению с версией 1.4.0:
Это первый стабильный выпуск библиотеки Camera Viewfinder, предоставляющей надежные, учитывающие жизненный цикл и простые в использовании API-интерфейсы View и Compose. Эти компоненты предназначены для использования в качестве видоискателя камеры и могут быть напрямую интегрированы с Camera2.
В этом выпуске также заложена основа для нового артефакта androidx.camera:camera-compose , который представляет CameraXViewfinder — видоискатель, работающий на Compose-идиоматическом языке, который легко интегрируется с CameraX SurfaceRequest , аналогично тому, как работает PreviewView для макетов на основе View. Среди наиболее важных изменений:
- Перемещение артефактов: для повышения модульности артефакты видоискателя были перемещены в отдельную группу библиотек. Разработчикам, ранее использовавшим зависимости
androidx.camera:camera-viewfinder*, следует перейти наandroidx.camera.viewfinder:viewfinder-*. - Стабилизация и улучшения API: в этой стабильной версии интерфейс API был доработан. В частности,
CameraViewfinderбыл переименован вViewfinderViewдля лучшего отражения его универсальности, пакеты были реорганизованы для большей ясности, аViewfinderSurfaceRequestстал неизменяемым типом данных для более предсказуемого управления состоянием. - Обновления API Compose: API Compose
Viewfinderтеперь поддерживаетContentScaleиAlignmentдля точного управления отображением потока камеры в контейнере, что соответствует поведению стандартного компонуемогоandroidx.compose.foundation.Image. - Управление жизненным циклом поверхности: сеанс
ViewfinderSurfaceSessionтеперь поддерживается при изменении конфигурации и событиях жизненного цикла в API 29+. Это изменение призвано сократить количество пропущенных кадров и обеспечить более плавный пользовательский интерфейс. - Настройки режима реализации по умолчанию:
Viewfinderтеперь по умолчанию использует интеллектуальныйImplementationMode, который автоматически выбирает наилучшую базовую реализацию. Приоритет отдаётся высокопроизводительномуSurfaceView(EXTERNALрежим) и корректно переключается на более совместимыйTextureView(EMBEDDEDрежим) на старых уровнях API или устройствах с известными проблемами совместимости. Это поведение по-прежнему можно переопределить, обеспечивая полный контроль разработчика.
Исправления ошибок
- Компонуемый
Viewfinderтеперь корректно работает вPagerCompose и сmovableContentOf(), обеспечивая правильный сброс поверхности и управление ею в сложных сценариях пользовательского интерфейса. ( I0d9be , I79432 ) - Исправлена ошибка на устройствах Android 10 и 11, из-за которой
Viewfinderна базеSurfaceViewмог выглядеть растянутым при применении преобразований. ( Icc77c )
Версия 1.5.0-rc01
13 августа 2025 г.
Выпущены androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01 , androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01 и androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 . Версия 1.5.0-rc01 содержит эти коммиты .
Исправления ошибок
- Перемещение
minSdkпо умолчанию из API 21 в API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
Версия 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, из-за которой
EXTERNALViewfinderмог выглядеть растянутым или некорректным из-за слишком раннего применения операций преобразования (например, масштабирования или переноса). Теперь система ожидает создания поверхности, прежде чем применять эти преобразования на этапе макета, что обеспечивает корректный вывод. ( 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 работает с представлениями.