java - 在 Android 应用程序中登录 FTP 时加载图标(进度)

标签 java android ftp android-asynctask

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

怎么做?

最佳答案

如果您希望进度“图标”显示为对话框( Activity 上方的较小屏幕),您可以使用 ProgressDialog:http://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

它是这样的:

enter image description here

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

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

当然,如果背景较暗, View 会变暗。

编辑:如何应用它。

我通常在启动 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();

        ...
    }
}

关于java - 在 Android 应用程序中登录 FTP 时加载图标(进度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957284/

相关文章:

java - 转换为编译时未知的泛型类型

Java 等待 IClientNotificationService

android - TextView 中的 HTML 具有不同的粗体和斜体字体

android - 无法下载 backport-util-concurrent.jar(backport-util-concurrent :backport-util-concurrent:3. 1):没有可用于离线模式的缓存版本

python - 在写入磁盘之前是否有任何理由将 ftp 下载保存到内存中?

java - 通过 Java 将无符号值从 Jython 窃取到 C,然后再返回

java - MySQL 非注册驱动程序

android - MotionLayout 的 child 忽略 "setVisibility"

ftp - vsftpd - 无法将文件上传到服务器。错误 553

java - 如何使用java上传多个文件