Shr*_*uti 9 android progressdialog android-widget
我已按照以下链接自定义进度对话框:
如何轻松地在ProgressDialog中居中进度指示器(当没有标题/文本传递时)
我想创建自定义进度对话框,就像在此图像中一样
但是该代码在我的应用程序中没有显示进度对话框.请指导我如何操作?还指导我如何根据我的项目主题更改进度对话框的颜色?
我这样做了:
将此类用于自定义进度对话框:
public class CustomProgressbar extends Dialog {
private static CustomProgressbar mCustomProgressbar;
private CustomProgressbar mProgressbar;
private OnDismissListener mOnDissmissListener;
private CustomProgressbar(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_progressbar);
this.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
}
public CustomProgressbar(Context context, Boolean instance) {
super(context);
mProgressbar = new CustomProgressbar(context);
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (mOnDissmissListener != null) {
mOnDissmissListener.onDismiss(this);
}
}
public static void showProgressBar(Context context, boolean cancelable) {
showProgressBar(context, cancelable, null);
}
public static void showProgressBar(Context context, boolean cancelable, String message) {
if (mCustomProgressbar != null && mCustomProgressbar.isShowing()) {
mCustomProgressbar.cancel();
}
mCustomProgressbar = new CustomProgressbar(context);
mCustomProgressbar.setCancelable(cancelable);
mCustomProgressbar.show();
}
public static void showProgressBar(Context context, OnDismissListener listener) {
if (mCustomProgressbar != null && mCustomProgressbar.isShowing()) {
mCustomProgressbar.cancel();
}
mCustomProgressbar = new CustomProgressbar(context);
mCustomProgressbar.setListener(listener);
mCustomProgressbar.setCancelable(Boolean.TRUE);
mCustomProgressbar.show();
}
public static void hideProgressBar() {
if (mCustomProgressbar != null) {
mCustomProgressbar.dismiss();
}
}
private void setListener(OnDismissListener listener) {
mOnDissmissListener = listener;
}
public static void showListViewBottomProgressBar(View view) {
if (mCustomProgressbar != null) {
mCustomProgressbar.dismiss();
}
view.setVisibility(View.VISIBLE);
}
public static void hideListViewBottomProgressBar(View view) {
if (mCustomProgressbar != null) {
mCustomProgressbar.dismiss();
}
view.setVisibility(View.GONE);
}
public void showProgress(Context context, boolean cancelable, String message) {
if (mProgressbar != null && mProgressbar.isShowing()) {
mProgressbar.cancel();
}
mProgressbar.setCancelable(cancelable);
mProgressbar.show();
}
}
Run Code Online (Sandbox Code Playgroud)
dialog_progressbar.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:background="@drawable/bg_progressbar"
android:gravity="center"
android:padding="10dp" >
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
添加绘制与命名的文件bg_progressbar.xml在绘制文件夹:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#7F000000" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
现在,无论何时想要启动Progress Dialog,只需编写1行代码:
CustomProgressbar.showProgressBar(MainActivity.this, false);
Run Code Online (Sandbox Code Playgroud)
无论什么时候想要关闭进度对话框,只需编写1行代码:
CustomProgressbar.hideProgressBar();
Run Code Online (Sandbox Code Playgroud)
希望这会帮助你.
| 归档时间: |
|
| 查看次数: |
21444 次 |
| 最近记录: |