ViewRenderable无法正常工作

时间:2018-07-24 09:46:49

标签: android arcore

我通过以下方式初始化了ViewRenderable:

ViewRenderable.builder()
            .setView(context, R.layout.fifabanner)
            .build()
            .thenAccept(renderable ->{
              bannerRenderable = renderable;
              bannerRenderable.setPixelsToMetersRatio(500);
              Toast.makeText(context,Float.toString(bannerRenderable.getPixelsToMetersRatio()),Toast.LENGTH_SHORT).show();
            });

视图xml文件如下:

<ImageView 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/fifa_ad"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="6dp" />

我将视图附加到节点上。

localPosition.set(0.01f * image.getExtentX(), 0.01f, 0.01f * image.getExtentZ());
    cornerNode = new Node();
    cornerNode.setParent(this);
    cornerNode.setLocalPosition(localPosition);
    cornerNode.setRenderable(bannerRenderable);

但是,在30次左右的尝试中,广告仅出现一次。请注意,我正在扫描图像,然后仅显示广告。 我在这里做错了什么,我必须改变什么?

1 个答案:

答案 0 :(得分:0)

将XML文件更改为以下内容:

<ImageView 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:src="@drawable/fifa_ad"
    android:gravity="center"
    android:adjustViewBounds="true"
    android:scaleType="centerInside"
    android:padding="6dp" />

,然后将localposition.set()更改为:

localPosition.set(-0.0f * image.getExtentX(), 0.1f, +0.5f * image.getExtentZ());
cornerNode = new Node();
cornerNode.setParent(this);
cornerNode.setLocalPosition(localPosition);
cornerNode.setLocalRotation(Quaternion.axisAngle(new Vector3(-1f, 0, 0), 90f));
cornerNode.setRenderable(bannerRenderable);