前回は、既存アプリ(HelloNikkeiアプリ)に、ボタンを付けるところまで説明しました。今回はいよいよ、カメラアプリ化します。なお今回の記事ではAndroid2.1をビルドターゲットとし、APIレベル7を用いています。Android2.1エミュレータおよび「GALAXY S」(NTTドコモ)と「IS03」(au)、「HTC Aria」(イー・モバイル)で動作を確認済みですが、全機種で動作を保証するものではありません。

 それでは始めましょう。カメラを使うには、まずパーミッションの設定が必要です。最初に、AndroidManifest.xmlファイル(写真1)を写真2のように書き換えてください。

写真1●変更前のAndroidManifest.xmlファイル
写真2●変更後のAndroidManifest.xmlファイル

 本記事では、アプリのpackage名を「jp.co.nikkeibp.nikkeihello」としていますが、この部分はご自分のアプリのパッケージ名を使ってください。追加するのは写真2の9行目の、

android:screenOrientation="portrait"

の行と、15~18行目の、

<activity android:name="CamAct"
             android:label="@string/app_name"
	  android:screenOrientation="portrait">

および、21行目の

<uses-permission android:name="android.permission.CAMERA" />

です。

 次に、2つのJavaファイル(CamAct.javaとCameraPreview.java)を追加します。これらをzipで圧縮したものをダウンロードしてください。

 ダウンロードしたファイルそれぞれの1行目をご自分のパッケージ名に変更して保存します。そして、Eclipseのパッケージ・エクスプローラを使って、既存アプリのsrc/パッケージ名ディレクトリにドラッグ・アンド・ドロップします(写真3)。「スーパークラスのメソッドをオーバーライドする必要があります」のようなエラーが出る場合は、プロジェクト名で右クリックしてプロパティを選び、「Javaコンパイラー」ダイアログの「コンパイラー準拠レベル」を「1.5」から「1.6」に変えてください。

写真3●追加されたCamAct.javaとCameraPreview.javaファイル

 次に、既存アプリのJavaソースに手を入れます。背景を差し替えたい画面を受け持つActivityのJavaファイルを開きます。NikkeiHelloの場合は、起動直後の初期画面を差し替えるため、NikkeiHello.java(写真4)を開きます。

 これを写真5のように変更します。この通りに入力すると、Eclipseに別のパッケージをインポートするよう促されますが、指示されたとおりインポートしてください。「jp.co.nikkeibp.nikkeihello」の部分はご自分のパッケージ名を使ってください。写真5のファイルはこちらからダウンロードできます。

写真4●変更前
写真5●変更後