- 首先,在您的项目中创建一个新的CustomDialog类,并继承Dialog类。命名为
LoadingDialog.java
。 -
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Window;
public class LoadingDialog extends Dialog {
public LoadingDialog(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_loading);
setCancelable(false);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
}
- 在res目录下创建layout文件夹,并在其中创建
dialog_loading.xml
文件。 -
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp">
<ProgressBar
android:layout_width="48dp"
android:layout_height="48dp"
android:indeterminate="true"
android:indeterminateTint="@color/colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Loading..."
android:textColor="@android:color/black" />
</RelativeLayout>
- 在Activity中使用LoadingDialog。
-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp">
<ProgressBar
android:layout_width="48dp"
android:layout_height="48dp"
android:indeterminate="true"
android:indeterminateTint="@color/colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Loading..."
android:textColor="@android:color/black" />
</RelativeLayout>
- 在异步操作完成后,调用dismiss()方法隐藏LoadingDialog
public class MainActivity extends AppCompatActivity {
private LoadingDialog loadingDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建LoadingDialog实例
loadingDialog = new LoadingDialog(this);
// 模拟异步操作,延迟2秒后隐藏LoadingDialog
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 隐藏LoadingDialog
loadingDialog.dismiss();
}
}, 2000);
// 显示LoadingDialog
loadingDialog.show();
}
}