
作者 / Android 開發(fā)者關(guān)系工程師 Francesco Romano
預(yù)覽 (Preview)
https://developer.android.google.cn/training/camerax/preview
CaptureSession
https://developer.android.google.cn/reference/android/hardware/camera2/CameraDevice#createCaptureSession(android.hardware.camera2.params.SessionConfiguration)
不要假定應(yīng)用將一直在縱向窗口中運(yùn)行。Android 13 仍然支持應(yīng)用固定屏幕方向的請求,但現(xiàn)在設(shè)備制造商可以選擇覆蓋應(yīng)用的首選屏幕方向請求。
不要假定應(yīng)用有任何固定尺寸或?qū)捀弑?/span>。即使您設(shè)置了 resizableActivity = "false",您的應(yīng)用仍然可以在大屏幕設(shè)備 (>=600dp) 上以多窗口模式使用。
不要假定屏幕方向和相機(jī)方向之間存在固定關(guān)系?!?/span>Android 兼容性定義文檔》中明確了相機(jī)圖像傳感器 "必須朝向正確方向,以便相機(jī)的長度方向與屏幕的長度方向?qū)R"。從 API 級別 32 開始,查詢可折疊設(shè)備方向的相機(jī)客戶端可以收到一個根據(jù)設(shè)備/折疊狀態(tài)動態(tài)變化的值。
Android 兼容性定義文檔
https://source.android.com/docs/compatibility/13/android-13-cdd#755_camera_orientation
不要假定邊襯區(qū)的大小無法更改。新的任務(wù)欄會作為邊襯區(qū)報(bào)告給應(yīng)用,且當(dāng)任務(wù)欄與手勢導(dǎo)航一起使用時,任務(wù)欄可以動態(tài)隱藏和顯示。
不要假定您的應(yīng)用享有專屬的相機(jī)訪問權(quán)限。當(dāng)您的應(yīng)用處于多窗口模式時,其他應(yīng)用也可以獲得對相機(jī)和麥克風(fēng)等共享資源的訪問權(quán)限。
雖然 CameraX 已經(jīng)能處理上述大多數(shù)情況,但使用 Camera2 API 實(shí)現(xiàn)適用于不同場景的預(yù)覽可能會很復(fù)雜。我們在 "在您的相機(jī)應(yīng)用中支持可調(diào)整大小的 Surface" Codelab 中介紹了這一點(diǎn)。
在您的相機(jī)應(yīng)用中支持可調(diào)整大小的 Surface
https://developer.android.google.cn/codelabs/android-camera2-preview
隆重推出 CameraViewfinder
CameraViewfinder
https://developer.android.google.cn/reference/kotlin/androidx/camera/viewfinder/CameraViewfinder
implementation "androidx.camera:camera-viewfinder:1.3.0-alpha01"
<androidx.camera.viewfinder.CameraViewfinder
android:id="@+id/view_finder"
app:scaleType="fitCenter"
app:implementationMode="performance"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
View
https://developer.android.google.cn/reference/android/view/View
PreviewView
https://developer.android.google.cn/reference/kotlin/androidx/camera/view/PreviewView
實(shí)現(xiàn)模式
https://developer.android.google.cn/training/camerax/preview#implementation-mode
縮放類型
https://developer.android.google.cn/training/camerax/preview#scale-type
現(xiàn)在該組件是布局的一部分,您仍然可以創(chuàng)建 CameraCaptureSession,但不提供 TextureView 或 SurfaceView 作為目標(biāo)界面,而是使用 requestSurfaceAsync() 的結(jié)果。
fun startCamera(){
val previewResolution = Size(width, height)
val viewfinderSurfaceRequest =
ViewfinderSurfaceRequest(previewResolution, characteristics)
val surfaceListenableFuture =
cameraViewfinder.requestSurfaceAsync(viewfinderSurfaceRequest)
Futures.addCallback(surfaceListenableFuture, object :FutureCallback {
override fun onSuccess(surface:Surface) {
//像往常一樣使用這個界面創(chuàng)建 CaptureSession
}
override fun onFailure(t:Throwable) { /* 出錯了 */}
}, ContextCompat.getMainExecutor(context))
}
CameraCaptureSession https://developer.android.google.cn/reference/android/hardware/camera2/CameraCaptureSession requestSurfaceAsync()
https://developer.android.google.cn/reference/kotlin/androidx/camera/viewfinder/CameraViewfinder#requestSurfaceAsync(androidx.camera.viewfinder.ViewfinderSurfaceRequest)
附加功能: 可折疊設(shè)備的布局優(yōu)化
Jetpack WindowManager
https://developer.android.google.cn/jetpack/androidx/releases/window
處理姿勢變化的代碼
https://github.com/androidx/androidx/blob/androidx-main/camera/integration-tests/viewfindertestapp/src/main/java/androidx/camera/integration/viewfinder/CameraViewfinderFoldableFragment.kt#L583

原文標(biāo)題:輕松實(shí)現(xiàn)相機(jī)預(yù)覽 | Camera Viewfinder 全新上線
文章出處:【微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
谷歌
+關(guān)注
關(guān)注
27文章
6223瀏覽量
107574
原文標(biāo)題:輕松實(shí)現(xiàn)相機(jī)預(yù)覽 | Camera Viewfinder 全新上線
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
遷移科技推出全新3D智能相機(jī)
鼎陽科技全新官網(wǎng)正式上線
OurBMC 24.12版本正式上線
微軟預(yù)覽版Copilot Vision AI功能上線
PowerPAD?輕松實(shí)現(xiàn)

51camera 2024產(chǎn)品型錄-工業(yè)相機(jī)、工業(yè)鏡頭、光源
網(wǎng)絡(luò)研討會: Teledyne FLIR IIS Forge 5GigE高速高精度機(jī)器視覺工業(yè)相機(jī)

KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠邀開發(fā)者免費(fèi)試用!

KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠邀開發(fā)者免費(fèi)試用!
石英晶振在智能相機(jī)中的應(yīng)用

GUI Guider V1.8.0全新版本正式上線
51camera | 2024上海機(jī)器視覺展圓滿結(jié)束

一鍵輕松配置 自連配置小程序上線啦!

評論