2017-05-05 1 views
1

내 라이브러리에 https://github.com/dm77/barcodescanner을 사용하고 있습니다. 모든 것이 잘 작동했습니다. 하지만 나는 스캔 바코드 영역을 더 작게 만드는 일부 수정을 원한다. 지역 스캔 크기를 조정하고 싶습니다. 이 이미지는 영역 스캔의 기본 크기를 보여줍니다. enter image description here라이브러리를 사용하여 스캔 바코드 영역을 만드는 방법 더 작은 android

상자 영역 스캔. 어떻게하면 더 작은 상자 영역을 만들거나 크기를 조정할 수 있습니까? 미안 해요 내가 코드를 수정하지 않은 이유는 내가 크기를 조절할 수 있기 때문입니다.

왼쪽의 이미지가 1이 아니고 싶습니다. 높이가 이미지 2 (오른쪽)보다 작습니다. 너비는 괜찮아. 절대 신경 쓰지 마라. 단지 신장 만. enter image description here

+0

정사각형으로 만들고 싶습니까? – Piyush

+0

라이브러리에는 스캐너보기의 크기를 조정하는 방법이 없습니다. –

+0

@ Piyush 높이를 더 작게 만들고 싶습니다. 이미지에 빨간색 선이 보입니까? 어쩌면 내가 위쪽과 빨간색 선 사이의 높이를 원해. 기본값보다 작다는 뜻이야. 내가 무슨 뜻인지 알 겠어? –

답변

2

크기를 조정하려는 경우. 몇 단계를 따르십시오 :

1) 현재 xml 파일에 하나의 레이아웃을 추가하십시오.

<RelativeLayout 
    android:id="@+id/qr_scan_parent_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

</RelativeLayout> 

2) Java 파일에서 상대 레이아웃의 ID를 찾고 초기화하십시오.

3) 크기 조정 상자의 경우 사용자 정의 클래스 인 CustomViewFinderView을 사용하십시오.

private static class CustomViewFinderView extends ViewFinderView { 
    public final Paint PAINT = new Paint(); 

    public CustomViewFinderView(Context context) { 
     super(context); 
     init(); 
    } 

    public CustomViewFinderView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    private void init() { 
     PAINT.setColor(Color.WHITE); 
     PAINT.setAntiAlias(true); 
     setSquareViewFinder(true); 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     drawTradeMark(canvas); 
    } 

    private void drawTradeMark(Canvas canvas) { 
     Rect framingRect = getFramingRect(); 
     float tradeMarkTop; 
     float tradeMarkLeft; 
     if (framingRect != null) { 
      tradeMarkTop = framingRect.bottom + PAINT.getTextSize() + 10; 
      tradeMarkLeft = framingRect.left; 
     } else { 
      tradeMarkTop = 10; 
      tradeMarkLeft = canvas.getHeight() - PAINT.getTextSize() - 10; 
     } 
     canvas.drawText("", tradeMarkLeft, tradeMarkTop, PAINT); 
    } 
} 

4) 이제 상대 레이아웃에 스캐너보기를 추가하십시오.

private void addQRScanningView() { 
    mScannerView = new ZXingScannerView(this) { 
     @Override 
     protected IViewFinder createViewFinderView(Context context) { 
      return new CustomViewFinderView(context); 
     } 
    }; 
    relative_layout.addView(mScannerView); 
} 

onCreate() 방법에 를 호출합니다.

+0

감사합니다. 이미 코드를 구현했지만 아무것도 변경되지 않았습니다. –

+0

어떤 값으로 크기를 조절해야합니까? –

+0

https://stackoverflow.com/a/47591098/2820534 제공하신 힌트를 사용하여 – Prabs

관련 문제