サイズを変更したい場合。いくつかの手順に従います:
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()
方法でを呼び出します。
正方形にしたいですか? – Piyush
ライブラリには、スキャナビューのサイズを変更する方法はありません。 –
@ Piyush高さをもっと小さくしたい。イメージに赤い線が表示されますか?多分私はトップラインと赤ラインの間の高さを望んでいます..デフォルトよりも小さいことを意味します。あなたは私の意味を持っていますか? –