本文实例为大家分享了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 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布局文件:

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/progress"

android:layout_width="50dp"

android:layout_height="50dp"

android:layout_centerInParent="true"

android:indeterminateDrawable="@drawable/bg_progressbar" />

这是bg_progressbar配置:

android:drawable="@mipmap/img_loading"

android:fromDegrees="0"

android:pivotX="50%"

android:pivotY="50%"

android:toDegrees="1080" />

最后就是加载的图片img_loading的样式,可以自定义,随便上网找一个就可以,看着好看就行。

5e150c44185ca48282822ad24565fd3a.png

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

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐