9

我已经阅读了很多关于此的内容,并且看不到任何曾经做过或尝试过的人。

所以我有一个扩展 ImageView 的对象,然后在其中我调用一个进度对话框并将进度对话框的内容设置为 imageview(即尝试在 imageview..view 中绘制进度对话框。)

    loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView        
    loadingProgressDialog.setIndeterminate(true);
    loadingProgressDialog.show();

我得到了错误:在添加内容之前必须调用 requestFeature()

现在我之前在大量帖子中看到过这个错误,是的,答案似乎很明显。我尝试设置所有功能:

loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

但首先我不明白为什么我需要这个?其次,它们都不起作用!

所以问题是我可以将 ProgressDialog contentView 设置为 ImageView 吗?如果是这样,我做错了什么?

4

3 回答 3

44

我做到了; 事实上,这很容易;使用

loadingProgressDialog.setContentView(this) 

loadingProgressDialog.show() 

以下代码行是不必要的:

loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

也就是说:

loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView 

足够了。

我希望这可以帮助其他人寻找这个问题的答案。

于 2012-04-09T08:57:16.660 回答
0

如果您阅读 progressDialog 开发人员文档,它会显示“显示进度指示器和可选文本消息或视图的对话框。只能同时使用文本消息或视图。”

看起来你正在尝试两者兼而有之。可能是你的问题的原因。

于 2010-12-04T01:11:59.043 回答
0

知道了。

线索在类名中,当你不需要对话框时不要使用 ProgressDialog ( http://developer.android.com/reference/android/app/ProgressDialog.html )!

我将实现更改为使用:ProgressBar ( http://developer.android.com/reference/android/widget/ProgressBar.html ),效果很好。

无论如何,为耳朵干杯!

这就是我寻找它的原因:

http://www.anddev.org/novice-tutorials-f8/imageview-with-loading-spinner-t49439.html

教程展示了如何在加载图像时使用 Spinner。享受

于 2010-12-04T11:26:51.177 回答