Ich befolge die Anweisungen Schritt für Schritt auf Zxing Camera in Portrait mode on Android, um Porträt während Benutzer mit zxing Kamera anzuzeigen.Zxing (v3.2.0) Kamera festen Hochformat mit Eclipse
Aber es wird nicht funktionieren. Der Scanner ist immer noch im Querformat sichtbar. Ich denke, es ist, weil ich die neueste Version (v3.2.0) von Zxing verwende und die Anweisung ist veraltet.
Wie kann dies in v3.2.0 Zxing getan werden?
Wie auch immer, hier sind die Schritte, die ich versucht habe:
- Ändern buildLuminanceSource (..) DecodeHandler.java
Code:
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;
PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(rotatedData, width, height);
- Ändern getFramingRectInPreview() in CameraManager.java
Code:
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;
Ändern initFromCameraParameters (...) in CameraConfigurationManager.java
In Zxing (v3.2.0) finde ich nicht den folgenden Code
Code:
//remove the following
if (width < height) {
Log.i(TAG, "Display reports portrait orientation; assuming this is incorrect");
int temp = width;
width = height;
height = temp;
}
- Add Linie folgende Kamera in setDesiredCameraParameters zu drehen (...) in CameraConfigurationManager.java
Code:
camera.setDisplayOrientation(90);
- In meinem Projekt, ändern AndroidManifest.xml
Code:
android:screenOrientation="portrait"