前回は、既存アプリ(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●変更後

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら