Dan*_*aid 2 android augmented-reality arcore sceneform
我是 ArCore 和 ArFragment 的新手。我想在检测到飞机时显示我的“菜单”视图并隐藏此加载图像。
我使用“ arFragment.getArSceneView.getScene().setOnUpdateListener ”。每当我实现自己的“setOnUpdateListener”时,我都可以显示我的菜单,但此加载图像不会隐藏。仅当我不实现 updateListener 时,此图像才会自动隐藏。这是来自 Activity_main.xml 的片段和来自 MainActivity.java 的侦听器
<fragment android:name="com.google.ar.sceneform.ux.ArFragment"
android:id="@+id/ux_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
ArSceneView arSceneView =arFragment.getArSceneView();
arSceneView.getScene().setOnUpdateListener(
frameTime -> {
Frame frame = arSceneView.getArFrame();
if (frame == null) {
return;
}
if (frame.getCamera().getTrackingState() != TrackingState.TRACKING) {
return;
}
for (Plane plane : frame.getUpdatedTrackables(Plane.class)) {
if (plane.getTrackingState() == TrackingState.TRACKING) {
Log.e("********************","");
hsv.setVisibility(View.VISIBLE);
}
}
});
Run Code Online (Sandbox Code Playgroud)
您可以通过隐藏视图然后将其设置为 null 来解决让平面发现视图始终在启动时显示的问题,这样它就不会重新出现。添加onCreate():
arFragment = (ArFragment)
getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.getPlaneDiscoveryController().hide();
arFragment.getPlaneDiscoveryController().setInstructionView(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |