未分類 Android

Android CameraXプレビューを実装してみた

投稿日:

はじめに

こんにちは。matsunariです。前々からAndroidCameraの実装について気になっていたため、今回はCameraXについて取り扱ってみたいと思います。

CameraXとは

CameraX は、カメラアプリの開発を簡単に行うための Jetpack サポートライブラリです。
Camera2の実装よりもシンプルでコード量も少なく実装する事ができるため、多くのアプリケーションで普及が期待されますね。
Androidでの実装はkotlinで行われる前提ですが、今回はJavaで導入してみようと思います。
CameraXのユースケースは以下の3つとなります。
1.プレビュー:画像表示を行います。
2.画像解析:機械学習などでの利用が想定されます。
3.画像キャプチャ:画像を保存します。
これらを組み合わせたカメラ機能をアプリ内部に実装する事ができます。
また、拡張機能を追加する事でアプリ内に、ポートレート、HDR、夜景、美容などの効果を追加することもできます。

Android Jetpackについて

CameraXはAndroidJetpackの機能の一部です。Android Jetpackは、Androidアプリの開発を加速させる次世代のコンポーネント、ツール、アーキテクチャガイダンスとしてGoogle I/O 2018にて発表されました。優れたAndroidアプリを作成するためのコンポーネントやツール、ガイダンスなどをひとまとまりにしたもので、既存のSupport LibraryとArchitecture ComponentsもJetpackに統合されています。
ひとまとまりとは言っても、それぞれのコンポーネントは、ライブラリとして提供されているので、開発者が使用したいコンポーネントを、自由に選択してアプリに含めることができます。
また、ライブラリとして提供されているため、Androidプラットフォームよりも高頻度で更新され、常に最新のAndroid Jetpackコンポーネントを使用することができます。特定のOSバージョンに左右されずに機能を提供できるため、さまざまなバージョンのプラットフォームでアプリを実行でき、古いOSバージョンをサポートしなければいけない場合も、使用することができます。

※AndroidJetPackの詳細についてはこちらでご確認ください。

Cameraパーミッションの追加

まずは、プレビュー表示のためにAndroidManifestにパーミッションを追加しましょう。

ソースコード全容

今回実装するのはプレビューのみです。

activity_main.xml

レイアウトはプレビュー画面表示用のTextureViewと撮影用のボタン(今回は実装なし)を設定しています。

MainActivity.java

プレビューの実装

previewインスタンスを利用するために、pconfigを引数として渡し、インスタンス化を行います。

setOnPreviewOutputUpdateListenerの中ではSurfaceTextureの更新をして再度親Viewに追加する処理を行います。

最後にbindToLifecycle()でプレビュー表示を行います。

アプリ画面上に動的なカメラプレビューが表示される事が確認できます。

さいごに

CameraXの実装はkotlinで行われている事が多いですがJavaで行いました。Androidの新機能に関してはkotlinで書かれる事が多いと思うので、kotlinを使った実装にも挑戦してみようと思います。今回はプレビューの実装のみだったので次回は画像のキャプチャ等のご紹介しようと思います。

おすすめ書籍

スッキリわかるJava入門 第2版 (スッキリシリーズ) Android Studio パーフェクトガイド(Kotlin /Java対応版) AndroidエンジニアのためのモダンJava

blog-page_footer_336




blog-page_footer_336




-未分類, Android
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Kotlin】FirebaseAuthenticationでメールアドレスで認証機能を実装

1 はじめに2 レイアウト3 新規登録4 ログイン5 さいごに6 参考7 おすすめ書籍 はじめに こんにちは。miyagawaです。 前回は「FirebaseAuthenticationでGoogle ...

Pushwoosh UnityでのFCM移行

1 はじめに2 Firebaseプロジェクトの引き継ぎ3 PushwooshのAPIキーの差し替え3.1 FCMサーバーキーの取得3.2 google-services.jsonのダウンロード3.3 ...

Android Studioでエラーログを詳細表示する

1 はじめに2 初期設定でのビルドエラーメッセージ3 詳細なビルドエラーメッセージを出力4 おまけ5 さいごに6 おすすめ書籍 はじめに こんにちは。Android開発を久しぶりにやっているのですが、 ...

Android JavaでS3への画像アップロード

1 はじめに2 AWS上での事前準備3 Android StudioのGradleでAWS SDKをインストール4 ManifestにPermissionの追加5 カメラで写真を撮影し、保存先のPat ...

[Android] KotlinでTextToSpeech

1 はじめに2 環境3 MainActivity.kt4 SpeechListener.kt5 activity_main.xml6 さいごに はじめに こんにちは。最近ようやくKotlinに手を付け ...

フォロー

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。