Tôi đã thành công khi sử dụng thư viện quét mã vạch ZXing, nhưng chỉ ở chế độ ngang.thư viện quét mã vạch android + ZXing - kích thước và hướng tùy chỉnh
Tôi cũng đã thiết lập thành công chế độ xem trước máy ảnh ở chế độ dọc và hiển thị chính xác (không kéo dài), nhưng giờ đây mã vạch không hoạt động. here're những thay đổi tôi đã thực hiện cho "setDesiredCameraParameters" on "CameraConfigurationManager.java" để hiển thị các máy ảnh một cách chính xác:
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);
}
tôi đã thử một số các giải pháp được đề cập trên những nơi khác, nhưng hoặc là họ don 't làm việc, hoặc họ làm việc nhưng không thể hiển thị xem trước máy ảnh một cách chính xác. ví dụ: 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
khi tôi đang hoàn thành với điều đó, tôi cũng cần phải tùy chỉnh kích thước vị trí & của hình chữ nhật để quá trình quét. tôi biết rằng tôi cần phải thay đổi "setManualFramingRect" trên "CameraManager.java", nhưng tôi không chắc chắn nếu tôi làm điều đó một cách chính xác. đây là đoạn code cho rằng:
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);
}
tất nhiên, tôi đã thay đổi "openDriver" để gọi:
if (_requestedFramingRect != null)
setManualFramingRect(_requestedFramingRect);
hãy giúp tôi.
EDIT: bây giờ tôi đã phát hiện ra rằng nó không hoạt động trên một số thiết bị. nó bị treo ngay từ đầu và nếu bạn gỡ lỗi, bạn có thể thấy rằng ngay cả bản xem trước cũng không hoạt động tốt.
tôi nghĩ bài đăng tiếp theo có thể trả lời câu hỏi của tôi: http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917. Tuy nhiên, vì đã có một thời gian dài kể từ khi tôi đã thử nghiệm thư viện zxing, tôi không biết nó hoạt động tốt như thế nào. –