scanner - Cambie la orientación del escáner QR con ZXING en Android Studio
lector qr android kotlin (4)
Espero me puedas ayudar con esto. Estoy usando Zxing Embedded Library para usar el escáner QR, el problema es que está en modo Paisaje y me gustaría cambiarlo a Vertical.
Tengo esto en las dependencias de mi 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''
y tengo esto en mi clase de Java para activar el escáner con un botón ...
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();
}
¡Gracias por la ayuda!
Funcionó para mí
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();
estoy usando
compile ''com.journeyapps: zxing-android-embedded: 3.1.0@aar''
Es una versión diferente, así que no sé si esto funcionará para ti, pero esto está funcionando para mí.
Más sobre mi configuración, solo compilo
''com.journeyapps: zxing-android-embedded: 3.1.0@aar''
''com.google.zxing: core: 3.0.1''
y no compilé
''com.journeyapps: zxing-android-integration: 2.0.1@aar''
Primero creé una actividad que se extiende desde CaptureActivity
o haga clic en este enlace para ver la clase https://gist.github.com/TheGratefulDev/21a557c9a96333ec037c
public class CaptureActivityPortrait extends CaptureActivity {
//Nothing in side.
}
Segundo, agrega esto
integrator.setCaptureActivity (CaptureActivityPortait.class);
en su código de integrador.
Así es como se ve el mío:
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();
Finalmente, en el complemento 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>
Acabo de encontrar la manera más fácil. Deberíamos crear otra clase CaptureActivity.java y escribir este código dentro del escucha onclick
:
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setPrompt("Scan a barcode");
integrator.setDesiredBarcodeFormats(integrator.ALL_CODE_TYPES);
integrator.setCameraId(0);
integrator.setOrientationLocked(false);
integrator.setCaptureActivity(com.share.ants.hotelmenu.CaptureActivity.class); <--replace with your own java class location here
integrator.setBeepEnabled(true);
En lugar de extender una clase, simplemente agregue esto al manifiesto:
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="portrait"
tools:replace="android:screenOrientation"
android:stateNotNeeded="true"/>
Funciona de maravilla