无法将Android布局文件加载为Sceneform中的锚点

时间:2019-08-22 16:53:23

标签: android android-layout arcore sceneform

我正在寻找一个将布局文件显示为锚点的工作示例,因为本教程示例(https://developers.google.com/ar/develop/java/sceneform/create-renderables)对我不起作用。

我尝试按照摘要链接中给出的教程的第一部分将文本视图呈现为锚点,但是它不会加载任何此类布局。另一方面,我可以将球体加载为锚点(使用ShapeFactory类),但是我的最终目标是显示锚点以描述有关它们的某些内容。

我的文本视图如下:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/planetInfoCard"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/abc"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="6dp"
    android:text="Anchor"
    android:textAlignment="center"
    android:textSize="30sp" />

呈现代码如下:

 ViewRenderable.builder()
  .setView(arFragment.getContext(),R.layout.anchor_layout)
  .build()
  .thenAccept(r -> nodeRenderable = r)
  .exceptionally(throwable -> { Toast toast =
                    Toast.makeText(arFragment.getContext(), "Unable to load 
                    renderable.", Toast.LENGTH_LONG);
                    toast.setGravity(Gravity.CENTER, 0, 0);
                    toast.show();
                    return null;});
 anchorNode.setRenderable(nodeRenderable);
 anchorNode.setParent(arFragment.getArSceneView().getScene());

当我尝试加载Textview时,我能够看到圆形阴影。有人可以帮我吗?还是有人有一个有效的示例将布局作为锚点加载?

1 个答案:

答案 0 :(得分:0)

您可以创建一个新节点,将其可渲染设置为ViewRenderable,并将其父设置为锚点。

val node = Node()
node.renderable = viewRenderable
node.parent = anchorNode