Zxing のバーコードリーダーを縦画面で使う方法
Zxing はバーコードやQRコードを読み取るためのオープンソースライブラリ。
様々なプラットフォームに対応しており、Android でも利用できる。
Android 版のサンプルコードが添付されているが、横画面(Landscape)固定だった。サンプルというか Android Market で公開されている QRコードリーダー そのもの。
今回、お仕事の関係で、縦画面(Portrait)で使いたかったのでメモ。
ソースの AndroidManifest.xml を見ると、CaptureActivity の screenOrientation を "landscape" から "portrait" に変えただけだと、画面は縦向きだが画像は横向きでしかも潰れたような変な絵になってしまった。
検索してみると Zxing Google Project の Issues に解決方法が提示してあった。
どうやらサンプルは横画面専用で、縦画面にするにはいろいろデータを加工したり、画面を回転させてあげないといけないらしい。
上のリンクの説明通りにコード変更したらめでたく縦画面で動作した(IS03 で)。QRコードもバーコードも読めたよ。
とりあえず縦画面版のソースを github に置いておきます。
https://github.com/amay077/ZxingAndroidInPortrait
コミットログを見てもらえば変更点は一目瞭然かと。スゲェな、github!