2017-05-05 15 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ファイルに1つのレイアウトを追加します。

<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

関連する問題