1. 程式人生 > 程式設計 >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<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實現載入等待展示

最後就可以使用了,挺有用的一個小技巧,載入用的,也可以用其他的方式實現,只要效果一樣就行。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。