作者:帝京 | 来源:互联网 | 2024-11-12 21:51
Android 自定义加载对话框 CustomProgressDialog
1. 自定义 CustomProgressDialog 如图所示:
2. 自定义组件通常通过定义一个继承自 View 的类来实现。我们来看一下具体的代码实现:
public class CustomProgressDialog extends ProgressDialog {
private AnimationDrawable mAnimation;
private Context mContext;
private ImageView mImageView;
private String mLoadingTip;
private TextView mLoadingTv;
private int count = 0;
private String oldLoadingTip;
private int mResid;
public CustomProgressDialog(Context context, String content, int id, int theme) {
super(context, theme);
this.mCOntext= context;
this.mLoadingTip = content;
this.mResid = id;
setCanceledOnTouchOutside(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
initData();
}
private void initView() {
setContentView(R.layout.progress_dialog);
mLoadingTv = (TextView) findViewById(R.id.loadingTv);
mImageView = (ImageView) findViewById(R.id.loadingIv);
}
private void initData() {
mImageView.setBackgroundResource(mResid);
mAnimation = (AnimationDrawable) mImageView.getBackground();
mImageView.post(new Runnable() {
@Override
public void run() {
mAnimation.start();
}
});
mLoadingTv.setText(mLoadingTip);
}
}
在上述代码中,首先定义了一个构造方法,用于传递参数。调用构造方法后,会执行 onCreate()
方法,加载一个 XML 布局文件,并为布局中的组件赋值。
下面是 XML 布局文件的内容:
这个布局文件包含一个 ImageView
和一个 TextView
,用于显示加载动画和提示文本。
在 initData()
方法中,为组件赋值并启动动画。这种自定义 View 的方式结合 XML 布局文件相对简单。
最终,调用该对话框的方法如下:
public void showCustomDialog() {
dialog = new CustomProgressDialog(this, "正在加载中", R.anim.frame, R.style.TRANSDIALOG);
dialog.show();
}
源码下载:点击打开链接