Android Zxing changer d'orientation en mode portrait
Je suis en train de faire pivoter Zxing affichage après la lecture de quelques questions et messages sur la question.
Après avoir suivi les instructions, l'écran fait tourner, mais le rectangle de le scanner
n'est pas positionné comme il se doit (comme on peut le voir sur l'image ci-jointe).
C'est ce que j'ai fait:
-
dans CameraConfigurationManager:
camera.setDisplayOrientation(90);
-
dans DecodeHandler.java
byte[] rotatedData = new byte[data.length]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) rotatedData[x * height + height - y - 1] = data[x + y * width]; } int tmp = width; width = height; height = tmp;
-
dans CameraManager.java:
rect.left = rect.left * cameraResolution.y / screenResolution.x; rect.right = rect.right * cameraResolution.y / screenResolution.x; rect.top = rect.top * cameraResolution.x / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;
- double possible de Comment utiliser Zxing en mode portrait?
Vous devez vous connecter pour publier un commentaire.
Après beaucoup de galère, j'ai trouvé le problème, et j'espère que ça va aider quelqu'un dans le futur.
Sur
initFromCameraParameters
méthode dansCameraConfigurationManager
il ya une hypothèse que l'analyse estALWAYS in landscape mode
, et à cet effet, une correctionwidth < height
.Si Vous suivez les étapes décrites dans la question et supprimer cette vérification, il fonctionne très bien.
Merci pour votre réponse!! il m'a vraiment aidé, une chose que j'ai remarqué, c'est qu'au moins sur zxing 2.1 vous devez passer "rotatedData" à buildLuminanceSource au lieu de "données", la fin de ligne comme ceci:
J'espère que cela aide quelqu'un d'autre!
De la bibliothèque zxing:2.2.0 de soutien pour l'orientation du changement est inhérent
Ajouter/modifier les éléments suivants dans le manifeste:
Définir d'autres biens lors de l'appel à scanner :
Lien de référence : https://github.com/journeyapps/zxing-android-embedded#changing-the-orientation
Bien j'ai fait un petit changement dans ProjectLibrary (xzing projet) et capable de changer d'orientation en mode paysage au mode portrait
Dans
setDesiredCameraParameters method of class CameraConfigurationManager
ajoutécamera.setDisplayOrientation(90);
.. dans mon projet d'origine de la
AndroidManifest.xml
fichier. J'ai misscreenOrientation = portrait
et Sa fonctionne très bien sur mon ICS 4.0.3Dans
CameraConfigurationManager
:Dans
DecodeHandler.java
:Dans
CameraManager.java
:Dans
CameraConfigurationManager
:Changement
android:screenOrientation="portrait"
pourCaptureActivity
dans le manifeste.setRequestedOrientation
àCaptureActivity#onResume
Je suis un développeur de Scanner de code à Barres. Oui, il faut beaucoup plus que cela pour faire de scan en mode portrait. Vous avez pour "faire tourner" les données d'image, et de rendre compte de l'orientation de l'appareil, de son orientation par défaut, et son capteur d'orientation.
Scanner De Code À Barres+ scans en mode portrait, et vous pouvez intégrer avec elle via Intention exactement de la même manière que vous intégrer avec Scanner de code à Barres. (Mais c'est un pour-pay app.)
cameraResolution
etscreenResolution
sont ce que vous en pensez?J'ai essayé différents patchs, suggéré dans d'autres réponses, mais la reconnaissance des codes barres est toujours aussi peu fiable.
Je recommande fortement d'utiliser le référentiel ci-dessous en mode portrait. L'essayer, c'est rapide et stable. Je l'ai utilisé dans mon hybride app.
https://github.com/Dbuggerx/BarcodeScanner
essayez ceci : ajouter
android:screenOrientation="sensorPortrait"
Dans votre bibliothèque allez à fichier de manifeste de modifier la ligne ci-dessous en vertu de l'activité de la balise