转载请注明出处:http://renyuan-1991.iteye.com/blogs/2304484
先看一下效果图:
[img]http://dl2.iteye.com/upload/attachment/0117/9987/da23e737-b453-3ebf-9eb8-6af958570b1a.png[/img]
1.不显示天数的DatePicker
2.设置DatePicker的显示日期范围
3.DatePicker的样式调整
下面看具体代码:
这种效果的实现首先要隐藏最后一列的Number(DatePicker的三列都是用number实现的)。隐藏最后一列有两种方法,如下:
第一种:
这种方法是在DatePickerDialog中使用的,通过findDatePicker方法拿到DatePicker,然后根据DatePicker的布局层次拿到显示天数的那个number并将其设置成GONE。如果我们是自己再布局中添加的DatePicker可以直接通过DatePicker的getChildAt方法拿到显示天数的number并设置成不显示。本例中通过如下方法设置:
布局文件:
先看一下效果图:
[img]http://dl2.iteye.com/upload/attachment/0117/9987/da23e737-b453-3ebf-9eb8-6af958570b1a.png[/img]
1.不显示天数的DatePicker
2.设置DatePicker的显示日期范围
3.DatePicker的样式调整
下面看具体代码:
这种效果的实现首先要隐藏最后一列的Number(DatePicker的三列都是用number实现的)。隐藏最后一列有两种方法,如下:
第一种:
DatePicker dp = findDatePicker((ViewGroup) datePickerDialog.getWindow().getDecorView());
if (dp != null) {
((ViewGroup)((ViewGroup) dp.getChildAt(0)).getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
}
}
private DatePicker findDatePicker(ViewGroup group) {
if (group != null) {
for (int i = 0, j = group.getChildCount(); i < j; i++) {
View child = group.getChildAt(i);
if (child instanceof DatePicker) {
return (DatePicker) child;
} else if (child instanceof ViewGroup) {
DatePicker result = findDatePicker((ViewGroup) child);
if (result != null)
return result;
}
}
}
return null;
}
这种方法是在DatePickerDialog中使用的,通过findDatePicker方法拿到DatePicker,然后根据DatePicker的布局层次拿到显示天数的那个number并将其设置成GONE。如果我们是自己再布局中添加的DatePicker可以直接通过DatePicker的getChildAt方法拿到显示天数的number并设置成不显示。本例中通过如下方法设置:
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="180dp"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="5dip"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_marginBottom="-15dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="选择月份" />
<DatePicker
android:theme="@android:style/Theme.Holo.Light"
android:id="@+id/datePickerStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false" />
<Button<