为progressDialog设置一般主题?

时间:2014-08-27 12:52:00

标签: android

如何为我在项目中创建的所有进度条设置主题?

这是我的风格:

<style name="MyTheme.ProgressDialog" parent="android:Theme.Holo.Light.Dialog.NoActionBar">
    <item name="android:textColor">@android:color/anyColor</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

我在我创建的每个progressDialog的构造函数中手动设置它:

loadingDialog = new ProgressDialog(this, R.style.MyTheme_ProgressDialog);

我可以将主题设置为我创建的所有进度对话框的默认值,而不是每次都在构造函数中对其进行更改吗?

2 个答案:

答案 0 :(得分:3)

ProgressDialog只有一个内容使用com.android.internal.R.style.Theme_Dialog_Alert样式的构造函数ProgressDialog(Context)。你无法覆盖它。相比之下,您可以创建一个简单的ProgressDialog子类,并使用它创建一个使用您的样式的构造函数。这样你就不必每次都指定样式。

public class MyProgressDialog extends ProgressDialog {
    public MyProgressDialog(Context context) {
        super(context, R.style.your_custom_style);
    }

    public MyProgressDialog(Context context, int theme) {
        super(context, theme);
    }
}

答案 1 :(得分:0)

在style.xml中设置您的进度样式:

<style name="progressBar" parent="android:Widget.Holo.ProgressBar.Large">
<item name="android:progressBarStyle">@android:style/Widget.Holo.Light.ProgressBar.Large</item>
</style>

然后在所有progressbars中设置样式属性如下:

  <ProgressBar
        android:id="@+id/loading_spinner_1"
        style="@style/progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="gone" />