まず、カメラへのアクセスを取得するために私には思えるの行を削除します。あなたはCameraPreview
があなたのためにそれをするので、それをしたくありません。
私はFrameLayoutを使用しません。これは、アイテムが順番に入れられ、最後にcameraPreviewを入れたいからです。だから、別のRelativeLayout
にLinearLayout
があるはずです(私は知っています、それは効率的ではありませんが、それは今のところうまくいきます)。ような何か(あなたのmain.xmlレイアウトが):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/zbar_layout_area"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
<ImageView
android:id="@+id/my_own_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/my_own_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
さて、あなたはzbar_layout_area
でCameraPreviewを配置する必要があります。このため、(ブラインドコーディング)にコードを変更しよう:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isCameraAvailable()) {
// Cancel request if there is no rear-facing camera.
cancelRequest();
return;
}
// Hide the window title.
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
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);
LinearLayout zbarLayout = (LinearLayout) findViewById(R.id.zbar_layout_area);
mPreview.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
zbarLayout.addView(mPreview);
}
はまた、あなたが十分なprermissionsを設定していることを確認してください。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
あなたはこれまでに何をしようとしたのですか?内部に 'SurfaceView'を置くことができます。私は、ウェブ上に「いくつかの」チュートリアルがあると信じています。 – gunar
@gunar - あなたに私にリンクを教えてもらえますか? – userAsk
これをもう一度読んで、なぜ自分でカメラを見せなければならないのですか?あなたはzbar固有の活動を呼び、カメラ権限を提供することになっています。何かのように:http://stackoverflow.com/questions/14494034/zbar-integration-into-android-app – gunar