看效果(默认主题颜色)
修改主题颜色后
实现的代码:
-----------------------可以设置到点击事件中,实现点击弹框----------------------
//调用时间选择器
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.MyDatePickerDialogTheme, onDateSetListener, mYear, mMonth, mDay);
//获取时间戳
long timeStamp = System.currentTimeMillis();
//设置可以显示的最晚的时间
datePickerDialog.getDatePicker().setMaxDate(timeStamp);
//弹框
datePickerDialog.show();
改变DatePickerDialog主题颜色步骤:
1、在values/style.xml新增:
<style name="MyDatePickerDialogTheme" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:textColor">@color/red</item>
</style>
2、在res下新建目录values-v21,新建style.xml文件,内容:
<color name="bgflow"> #3a3a3a</color>
<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<item name="android:colorPrimary">@color/bgflow</item>
<item name="android:colorPrimaryDark">@color/bgflow</item>
<item name="android:colorAccent">@color/bgflow</item>
</style>
通过代码引用:
private int mYear;
private int mMonth;
private int mDay;
private void initData() {
//获取当前时间
Calendar ca = Calendar.getInstance();
mYear = ca.get(Calendar.YEAR);
mMonth = ca.get(Calendar.MONTH);
mDay = ca.get(Calendar.DAY_OF_MONTH);
}
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.MyDatePickerDialogTheme, onDateSetListener, mYear, mMonth, mDay);
-----------------------日期选择器对话框监听-------------------------
private DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
String days;
if (mMonth + 1 < 10) {
if (mDay < 10) {
days = new StringBuffer().append(mYear).append("-").append("0").
append(mMonth + 1).append("-").append("0").append(mDay).append("").toString();
} else {
days = new StringBuffer().append(mYear).append("-").append("0").
append(mMonth + 1).append("-").append(mDay).append("").toString();
}
} else {
if (mDay < 10) {
days = new StringBuffer().append(mYear).append("-").
append(mMonth + 1).append("-").append("0").append(mDay).append("").toString();
} else {
days = new StringBuffer().append(mYear).append("-").
append(mMonth + 1).append("-").append(mDay).append("").toString();
}
}
dataTv.setText(days);
}
};
-------------------------设置可以显示的起始日期--------------------------
//设置可以显示的最晚的时间
datePickerDialog.getDatePicker().setMaxDate(timeStamp);
//设置可以显示的最早的时间
datePickerDialog.getDatePicker().setMinDate(timeStamp);