自定义的ProgressDialog:
<span style="font-size:18px;">public class LoadingProgressDialog extends ProgressDialog {
public LoadingProgressDialog(Context context) {
super(context, R.style.Progress_Dialog);
setCancelable(true);
setCanceledOnTouchOutside(false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_progress_dialog);
}
}</span>style:
<span style="font-size:18px;"> <style name="Progress.Dialog" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<!--<item name="android:windowNoTitle">true</item>-->
<!--<item name="android:windowIsFloating">true</item>-->
<!--<item name="android:backgroundDimEnabled">true</item>-->
</style></span>
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="#00000000"
android:indeterminateDrawable="@drawable/progress_small"/>
</RelativeLayout></span>下面写的两个模版:
1.Fragment
public class BaseFragment extends Fragment {
private LoadingProgressDialog mLoadingProgressDialog;
private Activity actvity;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
actvity = getActivity();
mLoadingProgressDialog = new LoadingProgressDialog(getActivity());
}
/**
* 显示dialog
*/
protected void showDialog() {
if (getActivity() != null && !getActivity().isFinishing() && mLoadingProgressDialog != null && mLoadingProgressDialog.isShowing()) {
mLoadingProgressDialog.show();
}
}
/**
* 关闭dialog
*/
protected void dismissDialog() {
if (getActivity() != null && !getActivity().isFinishing() && mLoadingProgressDialog != null && mLoadingProgressDialog.isShowing()) {
mLoadingProgressDialog.dismiss();
}
}
@Override
public void onDestroy() {
super.onDestroy();
dismissDialog();
mLoadingProgressDialog = null;
}
}2.FragmentActivity
public class BaseFragmentActivity extends FragmentActivity {
private LoadingProgressDialog mLoadingProgressDialog;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLoadingProgressDialog = new LoadingProgressDialog(this);
}
/**
* 显示dialog
*/
protected void showDialog() {
if (!isFinishing() && mLoadingProgressDialog != null && mLoadingProgressDialog.isShowing()) {
mLoadingProgressDialog.show();
}
}
/**
* 关闭dialog
*/
protected void dismissDialog() {
if (!isFinishing() && mLoadingProgressDialog != null && mLoadingProgressDialog.isShowing()) {
mLoadingProgressDialog.dismiss();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
dismissDialog();
mLoadingProgressDialog = null;
}
}如果你的界面是Fragment,可以继承BaseFragment,如果是Activity就继承BaseFragmentActivity。
通过例子展示下效果:
public class MainActivity extends AppCompatActivity {
private Button btn;
private LoadingProgressDialog mLoadingProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mLoadingProgressDialog = new LoadingProgressDialog(MainActivity.this);
mLoadingProgressDialog.show();
}
});
}
}
本文介绍如何在Android应用中自定义ProgressDialog,使其达到全屏显示的效果。通过在Fragment中使用自定义对话框,详细展示了实现过程和最终展示效果。
660

被折叠的 条评论
为什么被折叠?



