当前位置: 移动技术网 > 移动技术>移动开发>Android > Android实现加载等待展示

Android实现加载等待展示

2020年08月26日  | 移动技术网移动技术  | 我要评论
本文实例为大家分享了android实现加载等待展示的具体代码,供大家参考,具体内容如下package com.zhcs.gis.app.modulecore.core.component.tool;

本文实例为大家分享了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的样式,可以自定义,随便上网找一个就可以,看着好看就行。

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

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网