Android实现加载等待展示
程序员文章站
2022-09-12 13:24:51
本文实例为大家分享了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的样式,可以自定义,随便上网找一个就可以,看着好看就行。
最后就可以使用了,挺有用的一个小技巧,加载用的,也可以用其他的方式实现,只要效果一样就行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。