Bitte kopieren Sie unsere App nicht vollständig. In diesem Fall müssen Sie trotzdem Ihre eigene App schreiben. Es ist definitiv nicht so einfach wie die Layout-Ausrichtung zu ändern. Die Benutzeroberfläche wird nicht nur für das Hochformat geschrieben, auch der App-Code ist nicht vorhanden.
Wenn Sie nur fixierten Hochformat verwenden möchten, dann ist dies nicht so schwer. Es ist schwierig, alle 4 Rotationen mit Front-/Rückseitenkameras vollständig zu unterstützen. Aber nicht nur 1 Fall.
Zuerst müssen Sie ein Portrait-Mode-UI entwerfen. (Bitte nicht das rote Linienmuster kopieren.)
Der eigentliche App-Code interessiert sich nicht für die Ausrichtung von QR-Codes. Sie müssen überhaupt nichts tun. Sie müssen jedoch Änderungen vornehmen, damit die Bildschirmanzeige richtig angezeigt wird.
Sie müssen Camera.getOrientation()
abfragen, um festzustellen, wie die Kamera montiert ist. Normalerweise ist es so, dass "nach oben" zu Ihrer Rechten ist, und ich denke, dass fast jedes Gerät auf diese Weise kompatibel ist. Aber technisch müssen Sie wissen, wie viel Sie das Vorschaubild drehen müssen.
Dann verwenden Sie Camera.setDisplayOrientation()
, um zu sagen, wie stark das Bild gedreht werden muss, damit es für den Hochformatmodus korrekt gedreht wird. Dies ist normalerweise "90".
Schließlich müssen Sie die Vorschaugröße mit Camera.Parameters.setPreviewSize()
auswählen, müssen aber möglicherweise die Werte, die Sie gewählt haben (480x800 vs 800x480), spiegeln, weil Sie im Hochformat sind.
Die Optimierung ist einfach, obwohl ein wenig Änderungen über mehrere Dateien benötigen. Hier habe ich eine komplette Lösung für diese Frage gestellt: http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917 – Roylee
@roylee: danke, Ihr Code läuft auch gut .. –