Android实现加载等待展示

 更新时间:2020年08月25日 12:20:48   作者:马占柱  
这篇文章主要为大家详细介绍了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<Activity> 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布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
 
  <ProgressBar
    android:id="@+id/progress"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_centerInParent="true"
    android:indeterminateDrawable="@drawable/bg_progressbar" />
</RelativeLayout>

这是bg_progressbar配置:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
  android:drawable="@mipmap/img_loading"
  android:fromDegrees="0"
  android:pivotX="50%"
  android:pivotY="50%"
  android:toDegrees="1080" />

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

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

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

相关文章

  • Android入门之ActivityGroup+GridView实现Tab分页标签的方法

    Android入门之ActivityGroup+GridView实现Tab分页标签的方法

    这篇文章主要介绍了Android入门之ActivityGroup+GridView实现Tab分页标签的方法,非常实用的功能,需要的朋友可以参考下
    2014-08-08
  • Android Dialog仿ios9中UIAlertController控件

    Android Dialog仿ios9中UIAlertController控件

    这篇文章主要为大家详细介绍了Android Dialog仿ios9中UIAlertController控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android将String保存为SD卡中TXT文件的方法

    Android将String保存为SD卡中TXT文件的方法

    今天小编就为大家分享一篇Android将String保存为SD卡中TXT文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Kotlin Fragment使用方法详解

    Kotlin Fragment使用方法详解

    Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段
    2023-01-01
  • android实现多线程断点续传功能

    android实现多线程断点续传功能

    这篇文章主要为大家详细介绍了android实现多线程断点续传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android中使用socket使底层和framework通信的实现方法

    Android中使用socket使底层和framework通信的实现方法

    native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层 呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自由通信,感兴趣的朋友一起看看吧
    2016-11-11
  • Android Studio 3.6 layout文件text模式切换问题

    Android Studio 3.6 layout文件text模式切换问题

    这篇文章主要介绍了Android Studio 3.6 layout文件text模式切换问,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Android实现树形层级ListView

    Android实现树形层级ListView

    这篇文章主要介绍了Android实现树形层级ListView的相关资料,需要的朋友可以参考下
    2016-02-02
  • Android的activity学习笔记

    Android的activity学习笔记

    这篇文章主要整理了Android的activity学习笔记,总共有八大亮点,推荐给大家,需要的朋友可以参考下
    2015-09-09
  • Android多渠道打包神器ProductFlavor详解

    Android多渠道打包神器ProductFlavor详解

    最近一直在学习Android Gradle 相关的知识点,今天刚好看到了 ProductFlavor 这节,ProductFlavor 的出现非常友好的帮助我们开发者解决了版本区分的问题
    2022-07-07

最新评论