話不多說,直接上圖

先編輯style文件:
<style name="dialog1" parent="@android:style/Theme.Dialog">
????<item name="android:windowFrame">@null</item>
? ? <item name="android:windowIsFloating">true</item>
????<item name="android:windowIsTranslucent">false</item>
????<item name="android:windowNoTitle">true</item>
????<item name="android:windowBackground">@android:color/transparent</item>? ?
????<item name="android:windowContentOverlay">@null</item>
</style>
然后,自定義一個LoadDialog.class類:
public class LoadDialog extends Dialog {
????private TextView tvContent;
? ? public LoadDialog(@NonNull Context context) {
????????super(context, R.style.dialog_loading);
????????setContentView(R.layout.dialog_load);
? ? ? ? setCanceledOnTouchOutside(false);
? ? ? ? tvContent = findViewById(R.id.tvDialogContent);
????}
? ? public void showloading(String content) {
????????tvContent.setText(content);
? ? ? ? super.show();
????}
? }
新建布局文件:dialog_load.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
????android:layout_width="match_parent"
? ? android:layout_gravity="center"
? ? android:layout_height="match_parent">
? ? <TextView
? ? ????android:id="@+id/tvDialogContent"
? ? ????android:layout_width="wrap_content"
????????android:layout_height="wrap_content"
? ? ? ? android:layout_centerInParent="true"
? ? ? ? android:background="#50000000"
? ? ????android:padding="@dimen/dp_10"
? ? ? ? android:text="加載中"
? ? ? ? android:textColor="#FFFFFF" />
</RelativeLayout>
使用:MainActivity.class中:
new?LoadDialog(this). showloading("加載中...");
但這種樣式貌似不太好看,我們給他變換一下textView 的樣式,新建load_style.xml,放在 drawable文件夾中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
? ? <!--色值-->
? ? <solid android:color="#50000000" />
? ? <!--圓角-->
? ? <corners android:radius="5dp" />
</shape>
將TextView的android:background="#50000000" ,替換成:android:background="@drawable/load_style"
