he tenido éxito usando la biblioteca de escaneo de códigos de barras ZXing, pero solo en modo apaisado.android + ZXing biblioteca de escaneo de códigos de barras - tamaño y orientación personalizados
También he tenido éxito al configurar la vista previa de la cámara para que esté en el modo retrato Y lo muestre correctamente (sin estirar), pero ahora el código de barras no funciona en absoluto. Acá los cambios que he hecho a "setDesiredCameraParameters" en "CameraConfigurationManager.java" con el fin de 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 intentado algunas soluciones mencionadas en otros lugares, pero o bien Don No funcionan, o funcionan, pero no pueden mostrar la vista previa de la cámara correctamente. ejemplos: How to use Zxing in portrait mode? http://code.google.com/p/zxing/issues/detail?id=178#c46 https://github.com/pplante/zxing-android/issues
cuando haya terminado con eso, yo también necesidad de personalizar el tamaño & ubicación del rectángulo a la exploración. Sé que necesito cambiar "setManualFramingRect" en "CameraManager.java", pero no estoy seguro si lo hago correctamente. aquí está el código para que:
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" llamar:
if (_requestedFramingRect != null)
setManualFramingRect(_requestedFramingRect);
por favor me ayude.
EDIT: ahora me he dado cuenta de que no funciona en algunos dispositivos. se bloquea al principio, y si depura, puede ver que incluso la vista previa no funciona bien.
Creo que la siguiente publicación podría responder a mi pregunta: http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917. sin embargo, dado que hubo un largo tiempo desde que probé la biblioteca zxing, no sé qué tan bien funciona. –