素人のアンドロイドアプリ開発日記

QRコード読み込みを組み込む

2018.04.08

zxingを利用したレイアウトを作る時に、多くのリファレンスだと、activityでQRコード読み込み用のクラスを呼び出したりしていたのですが、自分でレイアウトを調整して読み込む必要があったので調べました。

QRコードを発行するのと同じようにライブラリを読み込むところからはじめます。

ライブラリの読み込み

compile 'com.journeyapps:zxing-android-embedded:3.5.0'

これをbuild.gradleに読み込みます。

レイアウトの設置

次にレイアウトの中に

<com.journeyapps.barcodescanner.CompoundBarcodeView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/barcodeView"/>

を呼び出します。CompoundBarcodeViewというのが、カメラも起動するようなQRコード読み込みになります。

クラスの設定

カメラを使うのでpause とresumeで呼び出しを設定します

Boolean pauseflag = false;
@Override
public void onPause() {
    pauseflag = true;
    ((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).pause();
    super.onPause();
}

@Override
public void onResume() {
    if(pauseflag){
        ((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).resume();
    }
    super.onResume();
}

これで準備ができました。読み込み自体は

((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).setStatusText(" ");
((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).getViewFinder().setVisibility(View.GONE);
((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).decodeSingle(new BarcodeCallback() {
    @Override
    public void barcodeResult(BarcodeResult barcodeResult) {
        //barcodeResult.getText();
        ((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).pause();
    }

    @Override
    public void possibleResultPoints(List<ResultPoint> list) {}
});
CameraSettings settings = ((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).getBarcodeView().getCameraSettings();

settings.setAutoFocusEnabled(true);
settings.setFocusMode(CameraSettings.FocusMode.CONTINUOUS);
((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).getBarcodeView().setCameraSettings(settings);
((CompoundBarcodeView)rootView.findViewById(R.id.barcodeView)).resume();

settingではカメラの設定もできたので、連続してフォーカスするモードだけ設定はしています。decodeのところのイベントも

decodeContinuous

を利用すると繰り返しQRコードを取得する事もできます。l

同じカテゴリの記事を紹介します

QRコードを発行する

カテゴリー:QRコード

公開中のアプリ、是非ダウンロードしてみてください

2chまとめのたね

RSSを利用してさまざまなブログの情報をキュレーションしてくれるアプリ

インストールする

ひらがな戦記

OPENGL ES2 を利用したカルタのソーシャルゲーム

インストールする