Android开发加载框工具类
2021-04-16 本文已影响0人
HMZZS
1.App在与服务器进行网络交互的时候,需要有一个提示的加载框,此时我们可以自定义一个加载中的对话框
- 第一步:编写布局文件创建dialog_loading.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="60dp"
android:minWidth="180dp"
android:orientation="vertical"
android:padding="10dp" >
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/loading_dialog_progressbar" />
<TextView
android:id="@+id/id_tv_loading_dialog_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="正在加载中..."
android:textColor="@color/white"
android:textSize="28px" />
</LinearLayout>
- 第二步:创建ProgressBar的样式,创建loading_dialog_progressbar.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/loading_progress"
android:pivotX="50%"
android:pivotY="50%" />
- 第三步:接下来为工具类代码
public class LoadingDialog {
/**
* 加载数据对话框
*/
private static Dialog mLoadingDialog;
/**
* 显示加载对话框
*
* @param context 上下文
* @param msg 对话框显示内容
* @param cancelable 对话框是否可以取消
*/
public static Dialog showDialogForLoading(Activity context, String msg, boolean cancelable){
View view = LayoutInflater.from(context).inflate(R.layout.dialog_loading,null);
TextView loadingText = (TextView) view.findViewById(R.id.id_tv_loading_dialog_text);
loadingText.setText(msg);
mLoadingDialog = new Dialog(context,R.style.CustomProgressDialog);
mLoadingDialog.setCancelable(cancelable);
mLoadingDialog.setCanceledOnTouchOutside(false);
mLoadingDialog.setContentView(view,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
mLoadingDialog.show();
return mLoadingDialog;
}
/**
* 关闭加载对话框
*/
public static void cancelDialogForLoading(){
if(mLoadingDialog != null){
mLoadingDialog.cancel();
}
}
}
- 第四步:代码中style样式
<style name="CustomProgressDialog" parent="@style/CustomDialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
- 如下图所示
![](https://img.haomeiwen.com/i23847001/57ff7ae89f3cd553.png)