2012-06-18 80 views
16

有沒有什麼辦法可以改變DatePickerTimePicker對話框的默認顏色?如何在Android中更改DatePicker和TimePicker對話框的默認顏色?

這是我嘗試

<DatePicker 
        style="@style/date_picker" 
        android:background="#6495ED" 
        android:id="@+id/DatePicker" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        android:layout_marginLeft="5dip" 
        android:layout_marginRight="5dip" /> 

<TimePicker 
        android:id="@+id/TimePicker" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        android:layout_marginLeft="5dip" 
        android:layout_marginRight="5dip" /> 

空兩行只改變背景顏色的代碼,我想改變日期和時間選擇器的默認銀色。
請任何幫助。

style="@style/date_picker" 
android:background="#6495ED" 

回答

6

你必須創建一個自定義主題,並將其保存在一些目錄,終於確立這個主題作爲默認一個用於應用

首先,在值增加的themes.xml這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar"> 
     <!-- Any customizations for your app running on pre-3.0 devices here --> 
    </style> 
</resources> 

然後,創建一個目錄,在res目錄名稱 「值-V11」(Android 3.0以上版本),並把一個的themes.xml這樣

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light"> 
     <!-- Any customizations for your app running on 3.0+ devices here --> 
    </style> 
</resources> 

最後,在你的manifest.xml創建一個目錄,在res目錄名稱 「值-V14」(Android 4.0以上版本),並創建一個的themes.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar"> 
     <!-- Any customizations for your app running on 4.0+ devices here --> 
    </style> 
</resources> 

最後

<application 
     ... 
     android:theme="@style/MyAppTheme"> 
+3

如果需要更改的屬性是公共的,那麼這將是要走的路。可悲的是,並非所有用於樣式小部件的屬性都是公共的。說實話,它甚至不清楚OP在談論什麼屬性。 – Vikram

3

我認爲沒有辦法在XML中輕鬆更改舊的本地拾取器小部件的灰色。

我建議您使用庫HoloEverywhere,以便DatePicker和TimePicker在所有Android平臺2.1+上看起來非常好。

3

你可以通過改變這樣的主題來改變日期選擇器的主題。

根據你的改變項目。

<style name="date_picker" parent="@android:style/Widget.DeviceDefault.DatePicker"> 
<item name="android:divider">@drawable/dialog_divider</item> 

根據你的改變項目。 和這個主題設置爲您的數據選擇器風格

style="@style/date_picker" 
+0

這隻適用於新的DatePicker和TimePicker,不適用於安卓版本爲4.x的「銀色」。 –

+1

@ JuliaHexen,@ KKC [檢查這個庫](https://github.com/luminousman/DatePicker)這是解決低版本的Android 4.x與你改變你的背景銀色 –

+0

這是一個自編碼的TimePicker庫和DatePicker,而不是本機Android類 - 這是「正常」的LinearLayouts。如果我使用圖書館,我會採取HoloEverywhere,因爲它比舊的Android廢話小部件更美麗^^ –

8

改變採集器對話框,最好的辦法是通過添加自定義樣式,。

<style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">@color/color_primary</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

TimePickerDialog timePicker = new TimePickerDialog(mContext, R.style.TimePickerTheme, fromListener, hour, min, false); 

完全適合我。

+0

這是一個完美的答案! – krisDrOid

+0

在這裏什麼是fromlistener對象? –

+0

TimePickerDialog.OnTimeSetListener – Godwin

相關問題