1

在 Android 应用程序中登录 FTP 服务器时,如何获得加载图标(如运行 rund 的小圆圈)?我知道 中有一个进度条,但只要登录发生AsyncTask,就想灰显并显示加载图标。MainView (MainActivity)

怎么做?

4

1 回答 1

4

如果您希望进度“图标”显示为对话框(活动上方的较小屏幕),您可以使用:http ProgressDialog: //developer.android.com/reference/android/app/ProgressDialog.html

要使用它:

ProgressDialog pd = new ProgressDialog(this); 
pd.setTitle(title);
pd.setMessage(message);
pd.show();

...

pd.dismiss(); //Use it when the task is over

这是它的样子:

在此处输入图像描述

如果您只想让您的布局看起来像是已停用,您可以使用 alpha 属性(不透明度)。例如,在我希望布局看起来比平时更暗的应用程序中,我使用:

AlphaAnimation alphaDeselected = new AlphaAnimation(1F, 0.25F);
alphaDeselected.setDuration(0);
view.startAnimation(alphaDeselected);

当然,如果背景很暗,则视图会变暗。

编辑:如何应用它。

我通常在启动 AsyncTask 之前显示 ProgressDialog。

pd = new ProgressDialog(this); // I declared pd as a global variable to access it from AsyncTask
pd.setTitle(title);
pd.setMessage(message);
pd.show();
mAuthTask = new UserLoginTask();
mAuthTask.execute((Void) null);

然后,当 AsyncTask 完成或被取消时,我关闭 ProgressDialog:

public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
    @Override
    protected Boolean doInBackground(Void... params) {
        ...
    }

    @Override
    protected void onPostExecute(final Boolean success) {
        pd.dismiss();

        ...
    }

    @Override
    protected void onCancelled() {
        pd.dismiss();

        ...
    }
}
于 2013-06-06T08:43:40.147 回答