如何更改ProgressDialog的颜色

5
我有一个ProgressDialog,它在Galaxy Tab 10.1上看起来像这样: enter image description here 在Galaxy Tab 7上看起来像这样: enter image description here 我希望两个对话框看起来相同: 使用以下样式,我得到的最接近的效果是: 结果如下图所示: enter image description here 所以我的问题是: - 如何删除“Please wait”标题周围的边框? - 如何将整体边框从蓝色改为白色? - 如何调整/减小宽度?
2个回答

9
progressDialog = new ProgressDialog(context):    
progressDialog.show();  
TextView tv1 = (TextView) progressDialog.findViewById(android.R.id.message);  
tv1.setTextSize(20);  
tv1.setTypeface(yourCustomTF);  
tv1.setText("your msg");  

通过这种方式,您可以更改消息文本,并通过从显示的 ProgressDialog 获取其组件来自定义整个视图。请记住,在 progressDialog.show() 后使用 findViewById() 可以获取视图 Id,因为视图是在 show() 后生成的。


尽管我认为应该有可能,但是使用您的建议我还没有成功地摆脱蓝色背景。如果我能让它工作,那么这可能是比已接受的解决方案更清晰的解决方案。 - Marc Van Daele
在 tv1.setTextSize(20); 处抛出 NullPointerException。在显示生成后,它无法获取 viewbyid。 - lifemoveson
1
在我的端上它是工作的,这里的'android.R.id.message'是TextView的ID,Android平台使用它来显示进度对话框中的消息。你应该学习ProgressDialog类以获得更好的理解。如果在从ProgressDialog获取tv1之前不使用progressDialog.show();,那么tv1将是一个nullpointer异常。 - Anand Tiwari
这篇文章有点旧了,但你知道如何获取标题文本视图吗?那么资源ID是什么呢?我尝试使用android.R.id.title,但它不起作用。有没有地方可以找到这个列表? - Burakito
@Burakito,是的,答案太旧了,在此之后发生了很多变化,以上内容的有用性取决于具体情况,但你可以自行寻找解决方法。请使用这里提供的链接获取Android L中类的源代码:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/app/ProgressDialog.java#ProgressDialog - Anand Tiwari

2

这篇文章可能会给你一些关于如何美化对话框的提示,同时还能保证在两个目标上看起来相同。


这是一篇有趣的文章。我应用了不同的ColorFilter来使所有东西变成灰度。 - Marc Van Daele
在SO上,仅提供链接的答案已经过时,请在此处发布一些代码。 - Maveňツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接