У меня проблема с всплывающим окном моего объекта AR. Я могу разместить один объект AR, а затем его вид показывает правильное изображение. Но затем, если бы я поместил новый объект AR, предыдущие изображения будут перезаписаны новым. Так, например, если я помещу объект ноутбука, его изображение будет ноутбуком. Но затем, если я помещу новый объект, такой как ноутбук, изображение ноутбука будет перезаписано этим новым.
Вот визуальное представление того, о чем я говорю:
Я пробовал разные методы, но результат все тот же.
Вот как они объявлены:
private String objectName;
private int resID;
Вот где я размещаю объект:
arFragment.setOnTapArPlaneListener(
(HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {
if (plane.getType() != Plane.Type.HORIZONTAL_UPWARD_FACING){
return;
}
Anchor anchor = hitResult.createAnchor();
arranchors.addElement(anchor);
placeObject(arFragment, arranchors.lastElement(), selectedObject);
if(arranchors.size() >1)
{
spreadapart();
}
}
);
Вот как различные объекты, имена объектов, их изображения выбраны: (кстати, имена объектов также имеют эту проблему)
private void InitializeAssetsMenu(){
LinearLayout gallery = findViewById(R.id.asset_layout);
ImageView pencil = new ImageView(this);
pencil.setImageResource(R.drawable.pencil_thumb);
pencil.setContentDescription("pencil");
pencil.setOnClickListener(view -> {selectedObject = Uri.parse("Pencil_01.sfb");objectName= "Pencil"; resID= R.drawable.pencil_thumb;});
gallery.addView(pencil);
ImageView eraser = new ImageView(this);
eraser.setImageResource(R.drawable.eraser_thumb);
eraser.setContentDescription("eraser");
eraser.setOnClickListener(view -> {selectedObject = Uri.parse("Eraser_01(1).sfb");objectName="Eraser"; resID= R.drawable.eraser_thumb;});
gallery.addView(eraser);
ImageView laptop = new ImageView(this);
laptop.setImageResource(R.drawable.laptop_thumb);
laptop.setContentDescription("laptop");
laptop.setOnClickListener(view -> {selectedObject = Uri.parse("Laptop_01.sfb");objectName="Laptop"; resID= R.drawable.laptop_thumb;});
gallery.addView(laptop);
ImageView notebook = new ImageView(this);
notebook.setImageResource(R.drawable.notebook_thumb);
notebook.setContentDescription("notebook");
notebook.setOnClickListener(view -> {selectedObject = Uri.parse("Notebook.sfb");objectName="Notebook"; resID= R.drawable.notebook_thumb;});
gallery.addView(notebook);
}
И вот где я делаю просмотр изображений:
private Node createInfoCard(TransformableNode parent){
Node infoCard = new Node();
infoCard.setParent(parent);
infoCard.setEnabled(false);
infoCard.setRenderable(cardRenderable);
//TextView textView = (TextView)cardRenderable.getView();
//textView.setText(this.objectName);
ImageView imageView1 = (ImageView)cardRenderable.getView();
imageView1.setImageResource(resID); //here we will have a variable that will have different image for each respective object.
infoCard.setLocalPosition(new Vector3(0.0f, 0.25f, 0.0f));
parent.setOnTapListener(
(hitTestResult, motionEvent) -> {
infoCard.setEnabled(!infoCard.isEnabled());
spreadapart();
});
return infoCard;
}
Я уверен, что проблема имеет делать с переменной resID
, но я просто не понимаю, как это вызывает перезапись.