2012-06-18 43 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

相关问题