Android ProgressDialog风格

时间:2012-04-20 07:36:16

标签: android styles themes progressdialog

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

我的应用程序中有一个样式,我必须覆盖什么项才能更改进度对话框样式?

我想仅使用xml更改样式,无需编码。这是可能的吗?

PS:

我没有进度条!我有进度对话框。我想使用样式和主题来改变它的样式,比如我改变了listview,windows背景等的样式。

2 个答案:

答案 0 :(得分:9)

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

ProgressDialog dialog = new ProgressDialog(this, AlertDialog.THEME_HOLO_DARK);
dialog.setTitle("Title");
dialog.setMessage("Message");
dialog.show();

答案 1 :(得分: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>