Android 自定义进程对话框
我有一个问题,改变颜色或什么的progressDialog。我已经看到了许多变化的例子,但没有满足我的需要,我需要你的帮助这是我的代码:Android 自定义进程对话框,android,android-asynctask,customization,progressdialog,Android,Android Asynctask,Customization,Progressdialog,我有一个问题,改变颜色或什么的progressDialog。我已经看到了许多变化的例子,但没有满足我的需要,我需要你的帮助这是我的代码: @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_DOWNLOAD_PROGRESS: mProgressDialog = new ProgressDialog(this)
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage(getApplicationContext().getString(R.string.download));
mProgressDialog.setIndeterminate(false);
mProgressDialog.setMax(100);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setProgressDrawable(new ColorDrawable(android.graphics.Color.BLUE)); // my bad test
mProgressDialog.setCancelable(true);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
重写ProgressDialog的onCreate方法,并对其进度条进行任何更改
ProgressDialog mProgress = new ProgressDialog(this){
@Override
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Now we retrive this dialog ProgressBar
ProgresBar bar = (ProgressBar) findViewById(android.R.id.progress);
//Do what you want with it here
};
};
您好,我想您可以使用dialog类创建自定义进度对话框。 您需要使用自定义视图设置对话框的contentivew 试试这个。 这是(谁给了我决定性的帮助)和更多建议的结合:
mProgressDialog = new ProgressDialog(MainActivity.this) {
@Override
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ProgressBar bar = (ProgressBar) findViewById(android.R.id.progress);
bar.getProgressDrawable().setColorFilter(0xFF22C819 /*XXX FIXME getColor(R.color.colorAccent)*/, android.graphics.PorterDuff.Mode.SRC_IN);
bar.getIndeterminateDrawable().setColorFilter(0xFF22C819 /*XXX FIXME getColor(R.color.colorAccent)*/, android.graphics.PorterDuff.Mode.SRC_IN);
}
};
这会将进度条颜色设置为所需的值,而与渲染为不确定还是0‥100无关(所讨论的应用程序同时使用这两种颜色,首先是不确定,直到知道要下载多少数据为止)
我唯一还没有弄清楚的是如何从
colors.xml
中获取一种颜色,而不是0xAARRGGBB
符号。欢迎编辑 改变颜色还是什么?你到底想做什么?用一个可绘制的颜色来更改黄色进度条(默认值),如果不能,用另一种颜色来更改黄色进度条(默认值),这正是你问题的答案。ProgressDialog使用android中包含的特殊布局文件来实例化和设置包含ProgressBar的视图层次结构,在这种情况下,它会向您显示表示某个操作进度的图形条。如果您想更改ProgressDialog中进度条的外观,实际上您将更改ProgressDialog中使用的进度条的外观。在我的示例中,您对ProgressBar所做的任何操作都将反映在ProgressDialog的外观上。如果您有疑问,请查看ProgressDialog的源代码。抱歉,这是打字错误<代码>findViewById不是视图。findViewById
对不起,我的朋友,我用你的代码替换了变量“private ProgressDialog mProgressDialog;”,它给我带来了NullPointerException,这就是一个例子。你需要根据你的对象和代码来调整它。