CameraX


CameraX

CameraX は、カメラアプリの開発を簡単に行うための Jetpack サポート ライブラリです。 Camera2 API の機能を簡単に利用することができます。
Android5.0 以上で動作するので、幅広いデバイスで安定して動作させることができます。

CodeLab

例によって CodeLab やりましょう。

  • まずは build.gradle の dependencies に CamelaX を追加(alpha 版)

  • View を用意。TextureView(高速描画の view component)

    *端末で Camera の使用を許可するため、AndroidManifest.xmlパーミッションを追加

  • previewを実装。撮影する枠の大きさなど指定 *ImageCapture 実装。この時、撮影のトリガーとなるボタンも view に追加

  • ImageAnalysis クラス実装

    (Firebase や MLKit などの機械学習で使えるようです )

  • preview

f:id:joooi13:20190916120414p:plain

  • ImageCapture

f:id:joooi13:20190916120428p:plain

  • ImageAnalysis

f:id:joooi13:20190916120457p:plain

f:id:joooi13:20190916121338p:plain

それぞれ bindToLifecycle で読み込ませる。

f:id:joooi13:20190916120509p:plain

ImageAnalysis ってなんぞや?と思い質問させていただたところ、
画像の平均輝度を数値で計ることができるとのことでした。

  • 検証 1:明るい壁を撮影

f:id:joooi13:20190916121811p:plain:w250

  • 検証 2:真っ暗にして撮影

f:id:joooi13:20190916121831p:plain:w250

まとめ

Camera2 API を使うと、プレビューを表示させることすら大変らしい・・
ですが、CameraX を使うと、簡単なカメラアプリを作る程度ならとても良さそう!