Androidのアプリ開発では、スマートフォンに搭載されている高性能カメラを用いた「カメラアプリ」を自由に作れることが魅力です。しかし撮影機能がメインのアプリだけがカメラアプリではありません。本来別の目的を持ったアプリでも、少しでもカメラの機能を使えばそれは立派なカメラアプリです。そこで本記事では、他の目的で開発したAndroidアプリに少しだけコードを加えることで、簡単に「カメラアプリ」化する方法を紹介します。

 本記事の対象読者は、Androidアプリ開発の初心者です。ただし、「Hello World」+αという程度のアプリは作ったことがある人を対象にします。このような人は当然、JDKやEclipseなど一連の「Androidアプリ開発セット」のインストールは済ませているでしょうから、開発環境のインストール方法は解説しません。インストール方法や初歩的なアプリ開発方法を知りたい場合は、日経Linux 2011年2月号の特集「Androidアプリをコピペだけで作る」や、同号の基礎講座「イラストで分かるAndroidアプリ作り 」を見てください。

カメラアプリ化の仕様を決める

 第1回ではまず、どんなアプリにするか、仕様を決めることにします。実際にさまざまなスマートフォンで正常に動作するかどうかは、実機でテストしてみないとわかりませんが、ここではエミュレータ上で動作させるところまではチャレンジします。

 さて、既存のアプリを「カメラアプリ化する」といっても、実際のアプリは多種多様です。そのすべてに対してカメラアプリ化する方法は説明できません。そこで、ボタン一つで、撮影した写真を既存のアプリ画面の背景に差し替える、というアプリを作ることにします。スマートフォンが搭載する標準のカメラアプリで撮影した写真を使うのではなく、アプリ内部で撮影して背景にするというものです。

 Androidアプリは何らかの「画面」があり、大抵は、その画面には「背景」があります。背景に画像を用いているアプリもあれば、無地のまま使っているアプリもあります。ここでは、こうした既存アプリの画面に新たに「ボタン」を置き、そのボタンを押すと、カメラのプレビュー画面を表示、そこでタッチすると写真を撮影して背景に差し替える、という機能を加えることにします(図1)。こうしたアプリが実際に役に立つかどうかはここでは関係ありません。

図1●既存アプリのカメラアプリ化
図1●既存アプリのカメラアプリ化
[画像のクリックで拡大表示]

 背景があるアプリであれば何でも構いません。図1では、ボタン3つが配置されたアプリを描いていますが、以下ではなるべくシンプルにするために、「Hello World」アプリを「カメラアプリ化」します。実際には、HelloWorldアプリの代わりに、ご自分のアプリを使ってください。