티스토리 뷰
이번에 어떤 일로 인해 Zxing 바코드 라이브러리를 이용하게 되었다.
그 중 처음 라이브러리를 임포트해서 사용하면 스캔 영역이 작아서 스캔하기 힘들어 진다.
이럴 때 스캔 영역을 조절해야하는데, 어떠한 해상도에서도 깔끔하게 적용되는 코드가 있어서 정리해 둔다.
통상적으로 스캔 영역 조절은 ViewfinderView.java 에서도 할 수 있지만, 화면 크기가 다 달라지는 안드로이드에서는
일관성이 떨어질 경우가 있다. 그래서 CameraManager.java 에서 스캔 영역을 조절하도록 한다.
추가한 zxing 의 CameraManager.java 에서 getFramingRect() 함수를 찾아서 아래와 같이 수정하도록 한다.
public Rect getFramingRect() { if (framingRect == null) { if (camera == null) { return null; } Point screenResolution = configManager.getScreenResolution(); int width = screenResolution.x * 3 / 4; int height = screenResolution.y * 3 / 4; Log.v("Framing rect is : ", "width is "+width+" and height is "+height); int leftOffset = (screenResolution.x - width) / 2; int topOffset = (screenResolution.y - height) / 2; framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); Log.d(TAG, "Calculated framing rect: " + framingRect); } return framingRect; }
이렇게 하면 스캔 영역이 확~ 넓어 진다.
'전공 > 안드로이드' 카테고리의 다른 글
안드로이드 로컬 서비스를 이용한 액티비티와 서비스간 통신. (17) | 2016.01.20 |
---|---|
zxing 바코드 라이브러리 이용기 - zxing 이용한 나만의 바코드 스캐너 만들기 (48) | 2015.05.18 |
[안드로이드] AppWidget 설정 값 저장하기. SharedPreferences 이용하기. (0) | 2011.08.11 |
[안드로이드] AppWidget Service 로 화면갱신, 업데이트 하기. (4) | 2011.08.09 |
[안드로이드] AppWidgetProvider (0) | 2011.08.06 |
댓글