Android實現載入等待展示
阿新 • • 發佈:2020-08-26
本文例項為大家分享了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的樣式,可以自定義,隨便上網找一個就可以,看著好看就行。
最後就可以使用了,挺有用的一個小技巧,載入用的,也可以用其他的方式實現,只要效果一樣就行。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。