機(jī)票直達(dá)
Android CameraX 詳解一 (引言&基礎(chǔ))
Android CameraX 詳解二 (實(shí)時(shí)預(yù)覽)
Android CameraX 詳解三 (拍照)
Android CameraX 詳解四 (圖片分析)
Android CameraX 詳解五(視頻拍攝錄制)
引言
CameraX 是一個(gè) Jetpack 庫,旨在幫助您更輕松地開發(fā)相機(jī)應(yīng)用。
相機(jī)功能的適配一直比較繁瑣,要兼容一大堆的設(shè)備和版本,而CameraX旨在解決此問題!
對(duì)于新應(yīng)用,建議從 CameraX 開始。它提供一致且易于使用的 API,適用于絕大多數(shù) Android 設(shè)備,并向后兼容 Android 5.0(API 級(jí)別 21)。
為什么使用CameraX
- 廣泛的設(shè)備兼容性
CameraX 支持搭載 Android 5.0(API 級(jí)別 21)或更高版本的設(shè)備,覆蓋現(xiàn)有 Android 設(shè)備的 98% 以上。 - 易用性
專注于需要完成的任務(wù),而無需花時(shí)間處理不同設(shè)備之間的細(xì)微差別 - 確保各設(shè)備間的一致性
要維持一致的相機(jī)行為并非易事。您必須考慮寬高比、屏幕方向、旋轉(zhuǎn)角度、預(yù)覽大小和圖像大小。有了 CameraX,這些基本行為都不用您再費(fèi)心 - 新體驗(yàn)
CameraX 有一個(gè)可選的 Extensions API,您只需兩行代碼,便可借助該 API 實(shí)現(xiàn)與設(shè)備的原生相機(jī)應(yīng)用相同的特性和功能。擴(kuò)展程序包含焦外成像(人像)、高動(dòng)態(tài)范圍 (HDR)、夜間模式和臉部照片修復(fù)功能,所有這些都需要設(shè)備支持。
Surface、SurfaceView、SurfaceHolder 是什么?
- Surface是什么?
Surface 是一塊用于填充圖像數(shù)據(jù)的內(nèi)存空間 - SurfaceView是什么?
SurfaceView是可以顯示Surface 的View。它與宿主窗口是分離的。這樣的好處是對(duì)這個(gè)Surface的渲染可以放到單獨(dú)線程去做,不會(huì)影響主線程對(duì)事件的響應(yīng)。缺點(diǎn)也很明顯,它的顯示也不受View的屬性控制,所以不能進(jìn)行平移,縮放等變換(7.0之前) - SurfaceHolder是什么?
SurfaceHolder是一個(gè)接口,給持有Surface 的對(duì)象使用,可以控制Surface 的大小和格式,編輯Surface 中的像素,以及監(jiān)聽Surface 的變化,這個(gè)接口通過SurfaceView獲得