0

私はZBarを実装しましたが、バーコードスキャナーであり、関連するレイアウトを持たないアクティビティのメソッドにプログラムでボタンを作成したいので、次のコードを使用しています:Oncreate

LinearLayout layout = new LinearLayout(this); 
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

Button button = new Button(this);
button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
button.setText("Back");
layout.addView(button);
setContentView(layout);

カメラ画面以外は何も表示されていません。

他に何か追加する必要がありますか?

バーコード読み取りコード:

public class ZBarScannerActivity extends Activity implements Camera.PreviewCallback, ZBarConstants {

private static final String TAG = "ZBarScannerActivity";
private CameraPreview mPreview;
private Camera mCamera;
private ImageScanner mScanner;
private Handler mAutoFocusHandler;
private boolean mPreviewing = true;

private ProgressDialog progress;
public static String MsgErr = null;
public static String BARCODE;

static {
    System.loadLibrary("iconv");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this); 
    layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    Button button = new Button(this);
    button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    button.setText("Back");
    layout.addView(button);
    setContentView(layout);

    if(!isCameraAvailable()) {
        // Cancel request if there is no rear-facing camera.
        cancelRequest();
        return;
    }

    mAutoFocusHandler = new Handler();

    // Create and configure the ImageScanner;
    setupScanner();

    // Create a RelativeLayout container that will hold a SurfaceView,
    // and set it as the content of our activity.
    mPreview = new CameraPreview(this, this, autoFocusCB);
    setContentView(mPreview);
}
4

2 に答える 2

1

レイアウトを置き換える効果がある setContentView を 2 回呼び出します。

これらの変更を順番に行います

次の行を置き換えます。

setContentView(layout);

に:

layout.setOrientation(LinearLayout.VERTICAL);

そして置き換えます:

setContentView(mPreview);

に:

layout.addView(mPreview);
setContentView(layout);

2 つの要素が表示されます。

于 2013-06-11T21:20:15.027 に答える