ZXing 바코드 스캐닝 라이브러리를 사용했지만 가로 모드에서만 성공했습니다.android + ZXing 바코드 스캐닝 라이브러리 - 사용자 정의 크기 및 방향도
또한 카메라 미리보기를 세로 모드로 설정하고 올바르게 (스트레칭하지 않고) 표시하는 데 성공했지만 바코드가 전혀 작동하지 않습니다. 내가 제대로 카메라를 보여주기 위해 "CameraConfigurationManager.java"의 "setDesiredCameraParameters"로 변경 한 바로 여기에 : 내가 다른 곳에서 언급 한 몇 가지 솔루션을 시도했습니다
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);
}
을하지만, 하나 그들은 돈 작동하지 않거나 작동하지만 카메라 미리보기를 올바르게 표시 할 수 없습니다. 예 : 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
내가이 완료거야, 나 또한 스캔에 사각형의 위치 & 크기를 사용자 정의 할 필요가있다. 나는 "CameraManager.java"에서 "setManualFramingRect"를 변경해야한다는 것을 알고 있지만 제대로 수행하는지 확신하지 못합니다. 물론
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);
}
, 내가 전화를 "openDriver"을 변경했습니다 :
if (_requestedFramingRect != null)
setManualFramingRect(_requestedFramingRect);
저를 도와주세요 여기에 대한 코드입니다.
편집 : 이제 일부 장치에서 작동하지 않는다는 것을 알게되었습니다. 처음에는 충돌이 발생하고 디버깅을하면 미리보기조차도 제대로 작동하지 않는다는 것을 알 수 있습니다.
다음 게시물이 내 질문에 대답 할 수 있다고 생각합니다. http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917. 그러나 zxing 라이브러리를 테스트 한 이후로 오랜 시간이 걸렸으므로 어떻게 작동하는지 잘 모릅니다. –