热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Android实现加载等待展示

这篇文章主要为大家详细介绍了Android实现加载等待展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android实现加载等待展示的具体代码,供大家参考,具体内容如下

package com.zhcs.gis.app.modulecore.core.component.tool;
 
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
 
import com.zhcs.gis.app.modulecore.R;
 
import java.lang.ref.WeakReference;
 
import androidx.appcompat.app.AlertDialog;
 
public class LoadingDialogUtils_M {
  private static AlertDialog loadingDialog;
  private static WeakReference reference;
 
  private static void init(Activity act) {
    init(act, -1);
  }
 
  private static void init(Activity activity, int res) {
    if (loadingDialog == null || reference == null || reference.get() == null || reference.get().isFinishing()) {
      reference = new WeakReference<>(activity);
      loadingDialog = new AlertDialog.Builder(reference.get()).create();
      if (res > 0) {
        View view = LayoutInflater.from(activity).inflate(res, null);
        loadingDialog.setView(view);
        loadingDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
//        loadingDialog.setContentView(res);
      } else {
        loadingDialog.setMessage("加载中...");
      }
      loadingDialog.setCancelable(false);
    }
  }
 
  public static void setCancelable(boolean b) {
    if (loadingDialog == null) return;
    loadingDialog.setCancelable(b);
  }
 
  /**
   * 显示等待框
   */
  public static void show(Activity act) {
    show(act, false);
  }
 
  public static void show(Activity act, boolean isCancelable) {
    show(act, R.layout.dialog_loading, isCancelable);
  }
 
  public static void show(Activity activity, int res, boolean isCancelable) {
    init(activity, res);
    loadingDialog.show();
    setCancelable(isCancelable);
  }
 
  /**
   * 隐藏等待框
   */
  public static void dismiss() {
    if (loadingDialog != null && loadingDialog.isShowing()) {
      loadingDialog.dismiss();
      loadingDialog = null;
      reference = null;
    }
  }
}

在使用的时候,在baseactivity里面这样设置:

public void showLoading(boolean show) {
    if (show) {
      LoadingDialogUtils_M.show(context, true);
    } else {
      LoadingDialogUtils_M.dismiss();
    }
  }

附件:

这是dialog_loading布局文件:

<&#63;xml version="1.0" encoding="utf-8"&#63;>

 
  

这是bg_progressbar配置:

<&#63;xml version="1.0" encoding="utf-8"&#63;>

最后就是加载的图片img_loading的样式,可以自定义,随便上网找一个就可以,看着好看就行。

最后就可以使用了,挺有用的一个小技巧,加载用的,也可以用其他的方式实现,只要效果一样就行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
author-avatar
永远的菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有