Skip to content

jybin88/DateAndTimePicker

Repository files navigation

TimePicker、DatePicker、ChineseDatePicker

时间选择器、日期选择器、中式日期选择器(包含农历)


开发者:lifh

本库提供时间选择、日期选择、农历选择功能,主要功能:

  • 获取选中的日期
  • 获取选中日期的时间戳
  • 获取选中农历日期
  • 获取选中的时间

可自定义选项

  • 更改背景色
  • 设置是否可循环
  • 更改可见数量
  • 更改默认字体颜色
  • 更改默认字体大小
  • 更改选中字体颜色
  • 更改选中字体大小
  • 更改宽度
  • 更新选中的背景图片

Gradle依赖

1.在project的build.gradle添加如下代码(如下图)

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

2.在Module的build.gradle添加依赖

compile 'com.github.jybin88:DateAndTimePicker:v0.1'

Demo

获取选中的日期、时间

1.日期选择器

getDateString(); //返回格式为yyyy-MM-dd
getDateFormatString(String pDateFormat) //返回自定义格式(pDateFormat)的日期

2.中式日期选择器

getGregorianDateString();//返回格式为yyyy-MM-dd
getGregorianDateString(String pDateFormat) //返回公历日期字符串(自定义格式pDateFormat)
getLunarDateString() //返回农历日期字符串 eg.2017年正月十七
getDateTimeMillis() //返回公历时间戳

3.时间选择器

getTimeString(); //返回公历日期字符串(格式为HH:mm)

显示任意日期、时间

日期选择器

setShowDate(int pYear, int pMonth, int pDay)

中式日期选择器

setGregorianDate(int pYear, int pMonth, int pDay) //设置公历日期
setLunarDate(int pYear, int pMonth, int pDay) //设置农历日期

时间选择器

setShowTime(int pHour, int pMinute)

切换公历、农历显示(ChineseDatePicker才有)

showGregorian(boolean pIsGregorian) //true 显示公历 false 显示农历

使用方法:

1.直接在布局文件中定义

日期选择器

<com.nd.ent.widget.DatePicker
    android:id="@+id/dp_picker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

中式日期选择器

<com.nd.ent.widget.ChineseDatePicker
    android:id="@+id/dp_picker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

时间选择器

<com.nd.ent.widget.TimePicker
    android:id="@+id/tp_picker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

2.直接在代码中创建相应的实例使用

日期选择器

DatePicker datePicker = new DatePicker(this);

中式日期选择器

ChineseDatePicker datePicker = new ChineseDatePicker(this);

时间选择器

TimePicker timePicker = new TimePicker(this);

属性设置:

1.代码动态设置(日期选择器,时间选择器都使用下面的方法)

  • 设置背景色:
setPickerBackgroundColor(@ColorInt int pColor)
setPickerBackgroundResource(@DrawableRes int pResId)
setPickerBackground(Drawable pDrawable)
  • 设置可见的选项数量:
setVisibleItems(int pVisibleItems)
  • 是否循环(只能动态进行设置,默认不循环)
setCycle(boolean pIsCycle)
  • 默认字体大小
setItemSize(int pItemSize)
  • 选中的字体大小
setSelectedItemSize(int pSelectedItemSize)
  • 默认字体颜色
setItemColor(@ColorInt int pItemColor)
  • 选中的字体颜色
setSelectedColor(@ColorInt int pSelectedColor)
  • 宽度
setItemWidth(int pItemWidth)
  • 选中的背景图片
setCenterDrawableId(@DrawableRes int pCenterDrawableId)

2.XML中静态设置

在布局根节点添加

xmlns:picker="http://schemas.android.com/apk/res-auto"

通过下面属性进行设置

  • 日期选择器
picker:ent_picker_date_bg_color="#ffffff" //背景色
picker:ent_picker_date_center_drawable="@drawable/item_center_bg" // 选中的背景图片
picker:ent_picker_date_item_color="#ff0000" //默认字体颜色
picker:ent_picker_date_item_selected_color="#0000ff" //选中字体颜色
picker:ent_picker_date_item_size="@dimen/default_size"//默认字体大小(必须在dimen文件中定义相应的值)
picker:ent_picker_date_item_width="90dp" //宽度
picker:ent_picker_date_selected_item_size="@dimen/selected_size"//选中字体大小(必须在dimen文件中定义相应的值)
picker:ent_picker_date_visible_count="3" //可见的选项数量
  • 时间选择器
picker:ent_picker_time_bg_color="#ffffff" //背景色
picker:ent_picker_time_center_drawable="@drawable/item_center_bg" // 选中的背景图片
picker:ent_picker_time_item_color="#ff0000" //默认字体颜色
picker:ent_picker_time_item_selected_color="#0000ff" //选中字体颜色
picker:ent_picker_time_item_size="@dimen/default_size"//默认字体大小(必须在dimen文件中定义相应的值)
picker:ent_picker_time_item_width="90dp" //宽度
picker:ent_picker_time_selected_item_size="@dimen/selected_size"//选中字体大小(必须在dimen文件中定义相应的值)
picker:ent_picker_time_visible_count="3" //可见的选项数量

3.通过样式进行设置

  • 日期选择器、中式日期选择器
<com.nd.ent.widget.DatePicker 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/date_picker_style"/>
<com.nd.ent.widget.ChineseDatePicker 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/date_picker_style"/>

或在全局样式中使用

<style name="AppTheme1" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 指定全局样式. -->
    <item name="ent_picker_dateStyle">@style/date_picker_style</item>
</style>

如果同时使用了上面两种方式,优先使用style="@style/date_picker_style"

date_picker_style样式参考

<style name="date_picker_style" parent="ent_picker_dateDefaultStyle">
    <item name="ent_picker_date_item_color">#ff0000</item>
    <item name="ent_picker_date_item_selected_color">#00ff00</item>
    <item name="ent_picker_date_item_size">@dimen/date_picker_text_size</item>
    <item name="ent_picker_date_selected_item_size">@dimen/date_picker_selected_text_size</item>
    <item name="ent_picker_date_item_height">50sp</item>
    <item name="ent_picker_date_visible_count">3</item>
    <item name="ent_picker_date_center_drawable">@drawable/item_center_bg</item>
</style>
  • 时间选择器
<com.nd.ent.widget.TimePicker 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/time_picker_style" />

或在全局样式中使用

<style name="AppTheme1" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 指定全局样式. -->
    <item name="ent_picker_timeStyle">@style/time_picker_style</item>
</style>

如果同时使用了上面两种方式,优先使用style="@style/time_picker_style"

time_picker_style样式参考

<style name="time_picker_style" parent="ent_picker_timeDefaultStyle">
    <item name="ent_picker_time_item_color">#ff0000</item>
    <item name="ent_picker_time_item_selected_color">#00ff00</item>
    <item name="ent_picker_time_item_size">@dimen/time_picker_text_size</item>
    <item name="ent_picker_time_selected_item_size">@dimen/time_picker_selected_text_size</item>
    <item name="ent_picker_time_item_height">50sp</item>
    <item name="ent_picker_time_visible_count">3</item>
    <item name="ent_picker_time_center_drawable">@drawable/item_center_bg</item>
</style>

本库依赖

  • com.android.support:support-annotations
  • com.android.support:support-v4
  • com.android.support:appcompat-v7

About

自定义时间日期选择器

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages