【发布时间】:2015-03-20 16:49:12
【问题描述】:
我有一个 ProgressDialog,它是在创建 Activity 时启动的(insideOnCreate 方法)。
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 的可绘制对象
我有一个问题。当我第一次设置drawable时
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 工作期间如何在运行时更改可绘制对象?
需要改成
【问题讨论】:
-
有趣的问题:)