0

我的应用程序 - 从 n 个 jpg 图像创建一个 gif 图像。这种方法要读取很多图像,所以需要很长时间。我想在此方法运行时显示进度对话框。请帮助我,任何想法或源代码示例!谢谢

4

2 回答 2

2

如果您只是在 UI 线程上执行此操作(不推荐),它将如下所示:

private void myMethodThatTakesALongTime() {
    ProgressDialog progressDialog;
    progressDialog = new ProgressDialog( getActivity() );
    progressDialog.setIndeterminate( true );
    progressDialog.setMessage( "Please Wait..." );
    progressDialog.show();

    // Do expensive operations

    progressDialog.dismiss();
}

我建议将所有这些都放入 AsyncTask 中。它看起来像这样:

private class MyAsyncTask extends AsyncTask<String, String, String> {

    private ProgressDialog progressDialog;

    protected void onPreExecute() {

        //show your dialog before you start

        progressDialog = new ProgressDialog( getActivity() );
        progressDialog.setIndeterminate( true );
        progressDialog.setMessage( "Please Wait..." );
        progressDialog.show();
    }

    @Override
    protected String doInBackground( String... params ) {

        // do expensive operations in here

        return null;
    }

    @Override
    public void onPostExecute( String result ) {

        //dismiss your dialog when done

        if ( progressDialog != null && progressDialog.isShowing() ) {

            progressDialog.dismiss();
        }
    }
}

您将使用以下行开始:

new MyAsyncTask().execute( String[] {} );
于 2012-10-22T17:03:11.010 回答
0

你需要在这里做两件事。首先使用oncreateDialog () 方法来创建你的对话。其次,您应该使用异步任务来执行长时间运行的任务。在启动异步任务时,您可以显示您的对话,当您完成任务并返回您的活动时,您可以再次关闭它。

于 2012-10-22T16:38:50.377 回答