我有问题要改变颜色或者progressDialog。我见过许多变化的例子但是没有满足我的需求,我需要你的帮助这是我的代码:
@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;
}
}
答案 0 :(得分:2)
覆盖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
};
};
答案 1 :(得分:0)
您好我认为您可以使用Dialog类创建自定义进度对话框。 您需要使用自定义视图设置对话框。
答案 2 :(得分:0)
the answer by @VallyN的组合(谁给了我这个决定性的帮助)和更多的recherche:
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
符号。编辑欢迎!