2012-04-12 3 views
5

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); 

저를 도와주세요 여기에 대한 코드입니다.


편집 : 이제 일부 장치에서 작동하지 않는다는 것을 알게되었습니다. 처음에는 충돌이 발생하고 디버깅을하면 미리보기조차도 제대로 작동하지 않는다는 것을 알 수 있습니다.

+1

다음 게시물이 내 질문에 대답 할 수 있다고 생각합니다. http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917. 그러나 zxing 라이브러리를 테스트 한 이후로 오랜 시간이 걸렸으므로 어떻게 작동하는지 잘 모릅니다. –

답변

2

더 많은 것이 있습니다. 예를 들어 카메라 방향이 장치 방향과 같지 않으면 실제로 카메라 데이터를 "회전"(또는 수직으로 스캔)해야합니다. 그리고 앞 카메라를 사용할 때 회전이 뒤 바뀌 었다는 사실을 고려해야합니다.

+0

나는 이미 작성한 링크를 시도했다. 작동하지 않았다. 그 일에 성공한 사람을 알고 있습니까? –

+0

예, 했어요. https://play.google.com/store/apps/details?id=com.srowen.bs.android –

+0

글쎄, 누군가가 비용없이이 문제에 대한 해결책을 공유 할 수 있다면 의미합니다. :) 어떤 경우에는 –

관련 문제