2

如何在 Android 中更改 ProgressDialog 样式?我需要更改背景颜色和文本颜色。

我的应用中有我的一种样式,我必须覆盖哪些项目才能更改进度对话框样式?

我想只使用 xml 来更改样式,而无需编码。有可能吗?

PS:

我没有进度条!我有进度对话框。而且我想使用样式和主题更改它的样式,例如更改列表视图、Windows 背景等的样式。

4

2 回答 2

9

您可以像这样更改 ProgressDialog 的主题:

ProgressDialog dialog = new ProgressDialog(this, AlertDialog.THEME_HOLO_DARK);
dialog.setTitle("Title");
dialog.setMessage("Message");
dialog.show();
于 2013-04-16T15:39:39.687 回答
3

自定义对话框的代码:drawable下的文件声明了不同状态的颜色:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <gradient
                    android:startColor="#000001"
                    android:centerColor="#0b131e"
                    android:centerY="0.75"
                    android:endColor="#0d1522"
                    android:angle="270"
            />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <gradient
                        android:startColor="#234"
                        android:centerColor="#234"
                        android:centerY="0.75"
                        android:endColor="#a24"
                        android:angle="270"
                />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <gradient
                    android:startColor="#144281"
                    android:centerColor="#0b1f3c"
                    android:centerY="0.75"
                    android:endColor="#06101d"
                    android:angle="270"
                />
            </shape>
        </clip>
    </item>

</layer-list>

布局 xml 中的代码:

<ProgressBar android:id="@+id/progressBar"
    android:progressDrawable="@drawable/progress_bar_states"
    android:layout_width="fill_parent" android:layout_height="8dip" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:indeterminateOnly="false" 
    android:max="100">
</ProgressBar>
于 2012-04-20T07:42:28.260 回答