当前位置: 首页 > 知识库问答 >
问题:

关于Rajawali Vuforia示例的进度对话框

施念
2023-03-14

在加载.obj模型时可以显示进度对话框。我试图调用RajawalivuforiaExampleRenderer.java中的ProgressDialog,但它说“Can't create handler inside thread that not calling looper.prepare()”

我在这里粘贴了部分代码

    mLight = new DirectionalLight(.1f, 0, -1.0f);
    mLight.setColor(1.0f, 0, 0);
    mLight.setPower(1);

    getCurrentScene().addLight(mLight);

    LoaderOBJ objParser = new LoaderOBJ(mContext.getResources(),
            mTextureManager, R.raw.wall_obj);

    try {
        // Load model
        objParser.parse();
        wall = objParser.getParsedObject();
        addChild(wall);
    } catch (Exception e) {
        e.printStackTrace();
    }

}
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    // receive file path
    String filePath = this.getIntent().getStringExtra("FullFilePath");
    Log.i(filePath, "FullFilePath:" + filePath);

    waitDialog = ProgressDialog.show(this, "", "Loading", true);
    waitDialog.show();
    new ModelLoader().execute();

}

@Override
protected void setupTracker() {
    int result = initTracker(TRACKER_TYPE_MARKER);
    if (result == 1) {
        result = initTracker(TRACKER_TYPE_IMAGE);
        if (result == 1) {
            super.setupTracker();
        } else {RajLog.e("Couldn't initialize image tracker.");
        }
    } else {
        RajLog.e("Couldn't initialize marker tracker.");
    }}

protected void initApplicationAR() {
    super.initApplicationAR();
    createImageMarker("marker.xml");
}

protected void initRajawali() {
    super.initRajawali();
    mRenderer = new ModelRenderer(this);
    mRenderer.setSurfaceView(mSurfaceView);
    super.setRenderer(mRenderer);

    mUILayout = this;
    mUILayout.setContentView(mLayout, new LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}

private class ModelLoader extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {
        startVuforia();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        waitDialog.dismiss();
    }
}

共有1个答案

邓光赫
2023-03-14

可在UITHREAD上显示进度对话框。因此在主线程上而不是在GLThread下显示进度对话框

 类似资料:
  • 当我单击登录按钮时,我想显示,并且移动到另一个页面需要时间。我该怎么做?

  • 问题内容: 我正在尝试制作一个可以帮助我评估从Web资源下载文件的时间的应用程序。我发现了2个样本: 使用Android下载文件,并在ProgressDialog中显示进度 和 http://www.helloandroid.com/tutorials/how-download-fileimage-url- 您的设备 第二个示例显示了较小的下载时间,但是我不明白如何使用它来更新进度对话框。我认为在

  • 但是,我搞错了: **(退出#pid<0.70.0>)退出于:genserver.call(MySupervisor,{:start_child,[#pid<0.70.0>,:Monitor,{:nonode@nohost,#pid<0.81.0>},{:erlang,:apply,[#function<0.118488666 in file:test.exs>,[“long st ring”]]

  • 问题内容: 加载Web视图后,我需要什么代码来创建对话框? 我试过了 没用 问题答案: :o webview.setWebViewClient(new homeClient()); homeClient() ???? 试试这个 更新:: 这是一个很好的例子。 Android WebView和不确定性进度解决方案

  • 问题内容: 我是android开发的新手。我想在我的应用程序中使用开发一个。当我单击“搜索”按钮时,应当与一起出现,表明在切换到另一个按钮之前进度一直在进行。请给我推荐示例代码。 问题答案: 使用。不过,您应该在new上进行工作,并在完成时使用a 回调到。这是我的方法: