2014-08-27 28 views
1

如何設置我在項目中創建的所有進度條的主題?設置progressDialog的一般主題?

這是我的風格:

<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); 

我可以設置主題,爲所有的進程對話框默認我每次都在構造函數中創建它而不改變它?

回答

3

ProgressDialog只有一個構造函數ProgressDialog(Context)其中內部使用com.android.internal.R.style.Theme_Dialog_Alert樣式。你無法覆蓋它。相比之下,您可以創建一個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

@Abdelrahman Elkady能否請您給予好評的答案? – 2014-08-27 14:01:49

+0

仍然是一個沒有代表的新帳戶...對不起:D – 2014-08-27 14:42:18

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" /> 
+0

請注意,這種方式只適用於'ProgressBar',而'ProgressDialog'不僅僅包含'ProgressBar'。 – 2014-08-27 13:47:53

+0

你是對的,這個答案正確的Progressbars。 – 2014-08-27 14:19:26