カメラのプレビューを表示するサーフェスビューがあります。その上に、スキャン ボタンなどのビューがたくさんある相対的なレイアウトがあります。
このように、これらのビューの1つを非表示にしようとしています
myIcon.setVisibility(View.INVISIBLE);
そして、私も試しました
myIcon.setVisibility(View.GONE);
どちらも機能していないようです。Invisible はまったく機能せず、Goneはある程度機能します
ここには、2D アイコン、設定ボタンが表示されます。非表示にする前は、次のようになります。
次に setVisibility(View.GONE) を呼び出します
これらのビューを保持する linearlayout が、設定ボタンにより多くのスペースを与えることで応答したことがはっきりとわかりますが、その背後から 2D が削除されませんでした。これは通常は機能することがわかっているので、SurfaceView と関係があると思います。
私が試してみました
myIcon.requestFocus();
可視性の変更を行った後、まだ何もありません。
助言がありますか?この特定の問題の経験がある場合のみ回答してください
編集:これが私のレイアウトです:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.sample.SampleJavaCameraView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone"
android:id="@+id/cv_surface_view" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true">
<ImageView
android:id="@+id/myIcon"
android:layout_width="30dip"
android:layout_height="30dip"
android:src="@drawable/twod_icon"
/>
<ImageButton
android:id="@+id/settingsBtn"
android:layout_width="30dip"
android:layout_height="30dip"
android:src="@drawable/settings_gear"
android:background="@null"
/>
</LinearLayout>
<ImageButton
android:id="@+id/scan_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo_small"
android:background="@drawable/blue_radial_grad"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:padding="20dip"
/>
ここでは、非表示にしようとしている画像が線形レイアウトでラップされていることがわかります。surfaceview は上部にあり、SurfaceView の OpenCV ラップ クラスです。