如何在Sceneform中拍摄照片?

时间:2019-02-15 08:43:46

标签: java android augmented-reality sceneform

我正在使用Sceneform设计增强现实Android应用程序。它应该能够使用虚拟3D对象和物理环境拍摄照片,但是应用程序仍然崩溃。我用Java创建了一个类WritingArFragment,并在一个片段中对其进行了引用,但它不起作用。

它说从未使用过类WritingArFragment。 例如,当我更改android:name="fully.qualified.class.name.WritingArFragment" to android:name="com.google.ar.sceneform.ux.ArFragment"

它可以工作,但是当我将其保留为fully.qualified.class.name.WritingArFragment"时,它总是崩溃。

我希望应用程序在不崩溃的情况下为AR环境和3D对象拍照。

我正在关注Sceneform Tutorials from

2 个答案:

答案 0 :(得分:0)

从您随附的教程中可以清楚地看到

  

使用超类创建一个名为WritingArFragment 的新类。   com.google.ar.sceneform.ux.ArFragment

这意味着默认情况下使用Google类#!/usr/bin/perl -w use strict; use warnings; use Gtk3 -init; Glib::Object::Introspection->setup(basename => 'GooCanvas', version => '2.0', package => 'Goo'); my $window = Gtk3::Window->new('toplevel'); $window->signal_connect('delete_event' => sub { Gtk2->main_quit; }); $window->set_size_request(640, 600); $window->set_title("Gtk3 GooCanvas with Perl Gobject Introspection"); $window->signal_connect(destroy => sub { Gtk3->main_quit }); my $swin = Gtk3::ScrolledWindow->new; $swin->set_shadow_type('in'); $window->add($swin); my $canvas = Goo::Canvas->new; # Gobject Introspection of Gtk3 Goo version $canvas->set_size_request(800, 650); $canvas->set_bounds(0, 0, 1000, 1000); $swin->add($canvas); my $root = $canvas->get_root_item(); # first point set my $pts_ref = [50,50,180,120,90,100,50,50]; my $points = Goo::CanvasPoints->new( $pts_ref, ); my $line = Goo::CanvasPolyline->new( 'parent' => $root, 'close-path' => 0, 'points' => $points, #in Gtk2 could just use $pts_ref 'stroke-color' => 'black', 'line-width' => 3, ); my $ellipse = Goo::CanvasEllipse->new( 'parent' => $root, 'center-x' => 20, 'center-y' => 20, 'width' => +60, 'height' => +60, 'stroke-color' => 'goldenrod', 'line-width' => 8, 'fill-color-rgba' => 0x3cb37180, ); $root->translate(200,200); $window->show_all(); Gtk3->main; __END__ 或像这样用Google的com.google.ar.sceneform.ux.ArFragment 扩展您的WritingArFragment

ArFragment

答案 1 :(得分:0)

我认为问题是这样。如果您为此创建了另一个应用程序并在该应用程序中创建了所有代码内容,则需要添加文件路径而不是googl的

从XML文件的ArFragment中删除此行,并添加文件的路径:

android:name="fully.qualified.class.name.WritingArFragment"

示例:

android:name="yourpackagename.WritingArFragment"
android:name="com.example.sceneform.WritingArFragment" // this is an example only

如果您在Windows中按Ctrl +空格键,则可能会得到该文件的建议。

我做了更改,并且对我有用。并按照Codelabs教程进行拍照。我已经尝试过了。