ZXingを利用してAndroidでQRコードを読み込むサンプル


こんにちは、@9ensanです。

android-qr-zxing-sample-01

今回は、AndroidでよくあるQRコードの読み取り方法のサンプルを紹介します。

AndroidでQRを読み込むのに一番有名なライブラリが「ZXing」というライブラリです。
このライブラリを利用してQRコードを読み込むサンプルを作って行きたいと思います。

 

それでは、解説していきます。

ZXingのダウンロードから配置

ライブラリのダウンロード

まずは、ライブラリを「ZXingのダウンロードサイト」からダウンロードしてきます。

ダウンロードサイトを開いたら、現時点での最新版の「ZXing-2.1.zip」のリンクをクリックします。
android-qr-zxing-sample-02

次にリンク先の、「ZXing-2.1.zip」をクリックしてファイルをダウンロードします。
android-qr-zxing-sample-03

 

Androidプロジェクトへのライブラリの登録

ダウンロードしてきたファイルを解凍します。

解凍されたフォルダの中から「core/core.jar」と「javase/javase.jar」の2つのファイルを
android-qr-zxing-sample-04
Androidプロジェクトの中に作成したlibsフォルダにコピーします。
android-qr-zxing-sample-05

プロジェクトのプロパティの、「Javaのビルド・パス」を選択します。
「ライブラリー」に「外部JARの追加」ボタンから先程コピーした「core.jar」と「javase.jar」を追加します。
android-qr-zxing-sample-06

これで、ライブラリーの準備は完了です。

 

QRコードを読み取るソースの修正

詳しくはgithubに上げた「サンプルコード」を参照してください。

カメラの起動は、「ApiDemos」の「CameraPreview.java」を参考に、QRコード読み取りは、「ZXing」に付いてきた「CaptureActivity」プロジェクトのソースから、QRコード読み出しに必要な処理のみを抜き出して実装しています。
(ZXingにデフォルトで付いている機能をそのままサンプルコードにすると、複雑になりすぎるので、簡素化しています)

 

AndroidManifest.xmlの修正

カメラを使用する為のパーミッションを追加

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

フルスクリーンで表示するテーマに修正
(android:themeを修正)

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

カメラの表示を正しくするために、activityをlandscape固定にする
(android:screenOrientationの指定)

<activity
    android:name="me.gensan.sampleqr.SampleQrActivity"
    android:label="@string/app_name"
    android:screenOrientation="landscape">

実際のソース

 

レイアウトXmlの修正

  1. SurfaceViewの追加
  2. 認識領域の設定
    認識領域を白の枠線で描く為にViewを追加
    「res/drawable/frame.xml」を作成して枠線用のshapeを作成

実際のソース

 

カメラを起動し、QRコードを解析する為のソースコードの記述

タッチイベントで、オートフォーカスを起動し、白枠の中の画像に対してQRコードの解析処理を実行するように実装

 

これで、ZXingを利用した解析処理が実装できした。
android-qr-zxing-sample-07

簡単にQRコードを読むことができるので何か面白いものでも作ってみてはいかがでしょうか。

 

今回参考にさせて頂いたサイト

.

関連する記事:

Facebookでコメント

コメント

  1. コメント 0

  1. トラックバック 0

*

return top