Android + biblioteca de escaneo de códigos de barras ZXing – tamaño personalizado y orientación

He logrado utilizar la biblioteca de escaneo de códigos de barras de ZXing, pero sólo en modo horizontal.

También he logrado establecer la vista previa de la cámara para estar en modo retrato y mostrarlo correctamente (sin estirar), pero ahora el código de barras no funciona en absoluto. Aquí están los cambios que he hecho en "setDesiredCameraParameters" en "CameraConfigurationManager.java" para mostrar la cámara correctamente:

void setDesiredCameraParameters(Camera camera) { Camera.Parameters parameters = camera.getParameters(); Log.d(TAG, "Setting preview size: " + cameraResolution); setFlash(parameters); setZoom(parameters); camera.setDisplayOrientation(90); parameters.set("rotation", 90); parameters.setPreviewSize(cameraResolution.y, cameraResolution.x); camera.setParameters(parameters); } 

He probado algunas soluciones mencionadas en otros lugares, pero o no funcionan, o funcionan, pero no se puede mostrar la vista previa de la cámara correctamente. Ejemplos: ¿Cómo usar Zxing en modo retrato? Http://code.google.com/p/zxing/issues/detail?id=178#c46 https://github.com/pplante/zxing-android/issues

Cuando estoy terminado con eso, también necesito personalizar la ubicación y el tamaño del rectángulo a la exploración. Sé que tengo que cambiar "setManualFramingRect" en "CameraManager.java", pero no estoy seguro si lo hago correctamente. Aquí está el código para eso:

 public void setManualFramingRect(Rect rect) { if (initialized) { Point screenResolution = configManager.getScreenResolution(); if (rect.right >= screenResolution.x) rect.right = screenResolution.x - 1; if (rect.left < 0) rect.left = 0; if (rect.bottom >= screenResolution.y) rect.bottom = screenResolution.y - 1; if (rect.top < 0) rect.top = 0; framingRect = rect; Log.d(TAG, "Calculated manual framing rect: " + framingRect); framingRectInPreview = null; } else _requestedFramingRect = new Rect(rect); } 

Por supuesto, he cambiado "openDriver" para llamar:

 if (_requestedFramingRect != null) setManualFramingRect(_requestedFramingRect); 

por favor, ayúdame.


EDIT: ahora he descubierto que no funciona en algunos dispositivos. Se bloquea al principio, y si depura, puede ver que incluso la vista previa no funciona bien.

One Solution collect form web for “Android + biblioteca de escaneo de códigos de barras ZXing – tamaño personalizado y orientación”

Hay más que esto. Por ejemplo, necesita realmente "rotar" los datos de la cámara (o, escanear como si fuera vertical) cuando la orientación de la cámara no es la misma que la orientación del dispositivo. Y cuando se utiliza una cámara frontal, es necesario tener en cuenta el hecho de que su rotación se invierte.

  • Uso de ZXing para crear una aplicación de escaneo de códigos de barras Android
  • Agregar menú a ZXings barcodescanner, y apretar la vista de superficie
  • ¿Cómo incluir la biblioteca Zxing en el proyecto android?
  • Uso de zxing en Google Glass
  • Cómo codificar información de contacto (MeCard) en Android mediante ZXing
  • Cómo establecer el tamaño del mapa de bits en ZXing?
  • ¿Cómo importar ZXING a android studio?
  • Opciones de Zxing barcode camera
  • Escáner de código de barras ZXing Propósito: set DecodeHintType.ASSUME_GS1
  • ZXing cómo escanear código QR y código de barras 1D?
  • Alternativa a la biblioteca de lectores QR de zxing para Java / Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.