未分類 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


関連記事

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

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

icon

About us

こんにちは、私たちは五反田周辺にて主に活動しているRE:ENGINESです。 デザイナー、エンジニアが集まり、プロダクトを一貫して制作しております。 また、制作の中で必要な周辺知識も学習し、個々人のス ...

【Kotlin】RecyclerViewAdapterを使ってリスト表示

1 はじめに2 GradleファイルにRecyclerViewの設定を追加する3 レイアウトファイルの作成4 Adapterクラスの追加5 Activityファイルへの追加6 さいごに7 おすすめ書籍 ...

【Java】ストリームについてまとめてみました

1 はじめに2 Streamの分類3 テキストファイルの読み書き4 バイナリファイルの読み書き5 読み書きのバッファリング処理6 さいごに7 おすすめ書籍 はじめに Javaではすべての入出力をストリ ...

Kotlinで初期化を遅延する

1 はじめに2 初期化の遅延とは3 by lazy4 lateinit5 Delegates.notNull6 さいごに7 おすすめ書籍 はじめに こんにちは、前回に引き続き、Kotlinの基本的な文 ...

フォロー

follow us in feedly

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

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