あなたがこれで私を助けてくれることを願っています。 QRスキャナーを使用するためにZxingEmbedded Libraryを使用していますが、問題は横向きモードであるため、縦向きに変更したいと思います。
Graddleの依存関係にこれがあります
compile 'com.journeyapps:zxing-Android-embedded:2.0.1@aar'
compile 'com.journeyapps:zxing-Android-integration:2.0.1@aar'
compile 'com.google.zxing:core:3.0.1'
これをJavaクラスに入れて、ボタンでスキャナーをアクティブにします...
public void scanQR(View view){
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setResultDisplayDuration(0);//Text..
integrator.setPrompt(" Scan a QR Code");
integrator.setScanningRectangle(450, 450);//size
integrator.setCameraId(0); // Use a specific camera of the device
integrator.initiateScan();
}
助けてくれてありがとう!
使ってます
コンパイル 'com.journeyapps:zxing-Android-embedded:3.1.0@aar'
バージョンが違うので、うまくいくかわかりませんが、うまくいきます。
私のセットアップの詳細については、コンパイルするだけです
'com.journeyapps:zxing-Android-embedded:3.1.0@aar'
'com.google.zxing:core:3.0.1'
そして私はコンパイルしませんでした
'com.journeyapps:zxing-Android-integration:2.0.1@aar'
最初に、CaptureActivityから拡張されたアクティビティを作成しました
または、このリンクをクリックしてクラスを表示します https://Gist.github.com/TheGratefulDev/21a557c9a96333ec037c
public class CaptureActivityPortrait extends CaptureActivity {
//Nothing in side.
}
次に、これを追加します
integrator.setCaptureActivity(CaptureActivityPortait.class);
インテグレータコードに。
これは私のように見えます:
CustomIntegrator integrator = new CustomIntegrator(activity);
integrator.setDesiredBarcodeFormats(CustomIntegrator.PDF_417);
integrator.setPrompt("Scan a barcode");
integrator.setCameraId(0); // Use a specific camera of the device
integrator.setOrientationLocked(true);
integrator.setBeepEnabled(true);
integrator.setCaptureActivity(CaptureActivityPortrait.class);
integrator.initiateScan();
最後に、AndroidMaifestで追加します
<activity Android:name=".custom.CaptureActivityPortrait" Android:screenOrientation="portrait" <---this is the most important line Android:stateNotNeeded="true" Android:theme="@style/zxing_CaptureTheme" Android:windowSoftInputMode="stateAlwaysHidden"> </activity>
クラスを拡張する代わりに、これをマニフェストに追加するだけです。
<activity
Android:name="com.journeyapps.barcodescanner.CaptureActivity"
Android:screenOrientation="portrait"
tools:replace="Android:screenOrientation"
Android:stateNotNeeded="true"/>
チャームのように機能します
私はちょうど最も簡単な方法を見つけました。別のCaptureActivity.Javaクラスを作成し、次のコードをonclick
リスナー内に記述する必要があります。
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setPrompt("Scan a barcode");
integrator.setDesiredBarcodeFormats(integrator.ALL_CODE_TYPES);
integrator.setCameraId(0);
integrator.setOrientationLocked(false);
// Replace with your own Java class location here
integrator.setCaptureActivity(com.share.ants.hotelmenu.CaptureActivity.class);
integrator.setBeepEnabled(true);
わたしにはできる:
IntentIntegrator integrator = new IntentIntegrator(YourActivity.this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
integrator.setPrompt(getResources().getString(R.string.scan_a_barcode));
integrator.setCameraId(0);
// Use a specific camera of the device
integrator.setBeepEnabled(true);
integrator.setBarcodeImageEnabled(false);
integrator.initiateScan();