Android實(shí)現(xiàn)加載等待展示
本文實(shí)例為大家分享了Android實(shí)現(xiàn)加載等待展示的具體代碼,供大家參考,具體內(nèi)容如下
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; } } }
在使用的時(shí)候,在baseactivity里面這樣設(shè)置:
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的樣式,可以自定義,隨便上網(wǎng)找一個(gè)就可以,看著好看就行。
最后就可以使用了,挺有用的一個(gè)小技巧,加載用的,也可以用其他的方式實(shí)現(xiàn),只要效果一樣就行。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android跳轉(zhuǎn)到通訊錄獲取用戶名稱和手機(jī)號(hào)碼的實(shí)現(xiàn)思路
這篇文章主要介紹了Android跳轉(zhuǎn)到通訊錄獲取用戶名稱和手機(jī)號(hào)碼的實(shí)現(xiàn)思路,當(dāng)用戶點(diǎn)擊跳轉(zhuǎn)到通訊錄界面 并取通訊錄姓名和手機(jī)號(hào)碼 ,實(shí)現(xiàn)代碼簡(jiǎn)單易懂,非常不錯(cuò)感興趣的朋友一起看看吧2016-10-10Android Studio創(chuàng)建AIDL文件并實(shí)現(xiàn)進(jìn)程間通訊實(shí)例
本篇文章主要介紹了Android Studio創(chuàng)建AIDL文件并實(shí)現(xiàn)進(jìn)程間通訊實(shí)例,具有一定的參考價(jià)值,有興趣可以了解一下。2017-04-04Android中CountDownTimer倒計(jì)時(shí)器用法實(shí)例
這篇文章主要介紹了Android中CountDownTimer倒計(jì)時(shí)器用法,以實(shí)例形式分析了Android中CountDownTimer類的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10Android 使用Vitamio打造自己的萬(wàn)能播放器(9)—— 在線播放 (在線電視)
本文主要介紹Android 使用Vitamio開(kāi)發(fā)播放器,實(shí)現(xiàn)在線電視播放,這里提供效果圖和實(shí)例代碼以便大家參考,2016-07-07Android獲取LinearLayout的寬度和高度示例代碼
這篇文章主要介紹了android獲取LinearLayout的寬度和高度,如果想直接獲取在布局文件中定義的組件的寬度和高度,可以直接使用View.getLayoutParams().width和View.getLayoutParams().height,本文結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08利用Warensoft Stock Service編寫高頻交易軟件
本文主要介紹了利用Warensoft Stock Service編寫高頻交易軟件的方法步驟,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01Android實(shí)現(xiàn)圓角ListView效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圓角ListView效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10