我有一个ProgressDialog,当Activity创建时(在OnCreate方法内部)启动。
private void initDialog() {
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setTitle("Please wait.");
mProgressDialog.setMessage("Connecting to LinkedIn.");
mProgressDialog.setCancelable(false);
mProgressDialog.show();
}
2500毫秒后,我想将圆形动画更改为我的自定义图像(如下所示),以模拟从服务器检索到数据并完成的情况。因此,我需要向用户显示进程已完成。为了达到这个目标,我选择了以下方法:
- 我显示对话框
- 当我检索到数据时,我更改ProgressDialog的可绘制对象
但是,我遇到了一个问题。当我第一次设置可绘制对象时
private void initDialog() {
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setTitle("Please wait.");
mProgressDialog.setMessage("Connecting to LinkedIn.");
mProgressDialog.setCancelable(false);
//This
mProgressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.ok));
mProgressDialog.show();
}
ProgressDialog的图标变换后看起来没问题。但是当ProgressBar启动(工作/圆形动画播放)时,我试图重置一个图标。
mProgressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.ok));
我遇到了意料之外的结果:圆形动画消失了,并且没有将图像设置为当前进度的可绘制对象。没有图像!空白区域代替我的图像。
authButton.postDelayed(new Runnable() {
@Override
public void run() {
mProgressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.ok)); //doesn't work as expected!
}
}, 2500);
我的问题是 - 如何在ProgressDialog工作期间运行时更改drawable?
需要将
![enter image description here](https://istack.dev59.com/tMMwLl.webp)
![enter image description here](https://istack.dev59.com/p77JRs.webp)