前回は、既存アプリ(HelloNikkeiアプリ)に、ボタンを付けるところまで説明しました。今回はいよいよ、カメラアプリ化します。なお今回の記事ではAndroid2.1をビルドターゲットとし、APIレベル7を用いています。Android2.1エミュレータおよび「GALAXY S」(NTTドコモ)と「IS03」(au)、「HTC Aria」(イー・モバイル)で動作を確認済みですが、全機種で動作を保証するものではありません。
それでは始めましょう。カメラを使うには、まずパーミッションの設定が必要です。最初に、AndroidManifest.xmlファイル(写真1)を写真2のように書き換えてください。
本記事では、アプリの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」に変えてください。
次に、既存アプリのJavaソースに手を入れます。背景を差し替えたい画面を受け持つActivityのJavaファイルを開きます。NikkeiHelloの場合は、起動直後の初期画面を差し替えるため、NikkeiHello.java(写真4)を開きます。
これを写真5のように変更します。この通りに入力すると、Eclipseに別のパッケージをインポートするよう促されますが、指示されたとおりインポートしてください。「jp.co.nikkeibp.nikkeihello」の部分はご自分のパッケージ名を使ってください。写真5のファイルはこちらからダウンロードできます。