【问题标题】:How do I change the color of the ProgressDialog如何更改 ProgressDialog 的颜色
【发布时间】:2012-01-03 14:23:01
【问题描述】:

我有一个在 Galaxy Tab 10.1 上看起来像这样的 ProgressDialog"

在 Galaxy Tab 7 上也是如此"

我希望两个对话框看起来相同:
我得到的最接近的是使用以下样式

<style name="popupStyle" parent="android:Theme.Dialog">
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:background">#FF000000</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>

导致这个

所以我的问题是:
- 如何删除“请稍候”标题周围的边框?
- 如何将整体边框从蓝色更改为白色?
- 如何调整/缩小宽度?

【问题讨论】:

    标签: android android-progressbar android-theme android-styles


    【解决方案1】:
    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() 之后生成的。

    【讨论】:

    • 我还没有成功地使用您的建议摆脱蓝色背景,尽管我认为这应该是可能的。如果我能让它工作,它可能是比公认的解决方案更清洁的解决方案。
    • 它在 tv1.setTextSize(20); 处抛出 NullPointerException。节目生成后不获取viewbyid。
    • 它在我的最后工作,这里的 'android.R.id.message' 是 TextView 的 id,Android 平台用于在进度对话框中显示消息。您应该学习 ProgressDialog 类以更好地理解。如果你不使用 progressDialog.show();在从progressDialog 获取tv1 之前,那么tv1 将是一个空指针异常。
    • 这篇文章很旧,但你知道有一种方法可以做到这一点,但得到标题文本视图吗?那么资源ID是什么?我尝试使用 android.R.id.title 但无法正常工作。有什么地方可以找到这份清单吗?
    • @Burakito,是的答案太老了,之后发生了很多变化,上面的有用性取决于你,但你可以找到你自己的方式,请在此处链接获取 src 代码Android L 中的类grepcode.com/file/repository.grepcode.com/java/ext/…
    【解决方案2】:

    这个article 可能会给你一些关于设置对话框样式的提示,它们在两个目标上看起来都是一样的。

    【讨论】:

    • 这是一篇有趣的文章。不过,我应用了不同的 ColorFilter 来使所有内容变为灰度。
    • 在这里发布一些代码,因为只有链接的答案在 SO 上被贬值了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多