目录

一.日历、日期、时间组件基本介绍

二.几种常见的控件类型

1.CalendarView –日历控件

2. DatePicker –日期选择控件

3.TimePicker –时间选择控件

4.Chronometer—计时器控件

三.DEMO


前言

小伙伴们,在上文中我们介绍了Android视图控件ImageView控件,本文我们继续盘点,介绍一下视图控件的日历、日期、时间组件。

一.日历、日期、时间组件基本介绍

在 Android 应用开发中,CalendarView 、DatePicker和TimePicker实现选择日期时间、Chronometer实现计时器功能,本文结合实例形式分析了Android DatePicker和TimePicker、Chronometer组件的功能、常用函数、布局等。

二.几种常见的控件类型

1.CalendarView –日历控件

CalendarView是Android上一个优雅、高度自定义、性能高效的日历控件,完美支持周视图,支持标记、自定义颜色、农历等,任意控制月视图显示、任意日期拦截条件、自定义周起始等。

CalendarView 的特性
基于Canvas绘制,极速性能
热插拔思想,任意定制周视图、月视图,即插即用
支持单选、多选、范围选择、国内手机日历默认自动选择等选择模式
支持静态、动态设置周起始,一行代码搞定
支持静态、动态设置日历项高度、日历填充模式
支持设置任意日期范围、任意拦截日期
支持多点触控、手指平滑切换过渡,拒绝界面抖动
类NestedScrolling特性,嵌套滚动
既然这么多支持,那一定支持英语、繁体、简体,任意定制实现

android:firstDayOfWeek:设置一个星期的第一天
android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
android:weekDayTextAppearance:工作日的文本出现在日历标题缩写

2. DatePicker –日期选择控件

android:calendarTextColor : 日历列表的文本的颜色
android:calendarViewShown:是否显示日历视图
android:datePickerMode:组件外观,可选值:spinner,calendar 前者效果如下,默认效果是后者
android:dayOfWeekBackground:顶部星期几的背景颜色
android:dayOfWeekTextAppearance:顶部星期几的文字颜色
android:endYear:去年(内容)比如2010
android:firstDayOfWeek:设置日历列表以星期几开头
android:headerBackground:整个头部的背景颜色
android:headerDayOfMonthTextAppearance:头部日期字体的颜色
android:headerMonthTextAppearance:头部月份的字体颜色
android:headerYearTextAppearance:头部年的字体颜色
android:maxDate:最大日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小日期显示在这个日历视图mm / dd / yyyy格式
android:spinnersShown:是否显示spinner
android:startYear:设置第一年(内容),比如19940年
android:yearListItemTextAppearance:列表的文本出现在列表中。
android:yearListSelectorColor:年列表选择的颜色

3.TimePicker –时间选择控件

calendarViewShown 设置其是否显示CalenderView组件

endYear 允许选择的最后一年

maxDate 支持的最大日期

minDate 允许选择的最小日期

spinnerShown 是否显示Spinner 日期选择组件

startYear 设置日期选择器 允许选择的第一年

4.Chronometer—计时器控件

Chronometer是一个简单的计时器。

主要配置

format,显示格式,默认是"MM:SS"或"H:MM:SS",以%s来格式化。
countDown,是否倒计时,与base时间相比较
主要方法

start(),开始计时
stop(),停止计时
setBase(long),设置计时基准时间
setFormat(String),设置显示格式
setCountDown(boolean),设置是否是倒计时,只有版本大于24才有效
setOnChronometerTickListener(OnChronometerTickListener),设置监听器

三.DEMO

activity

package com.example.myfirtstproject;import android.app.Activity;
import android.os.Bundle;
import android.widget.CalendarView;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;import java.util.Calendar;public class MainActivity extends Activity {//定义五个当前时间的变量private int year ;private int month ;private int day ;private int hour ;private int minute ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);//获取当前日期/时间Calendar calendar = Calendar.getInstance();year = calendar.get(Calendar.YEAR);month = calendar.get(Calendar.MONTH);day = calendar.get(Calendar.DAY_OF_MONTH);hour = calendar.get(Calendar.HOUR);minute = calendar.get(Calendar.MINUTE);//为DatePicker添加监听事件datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {MainActivity.this.year = year;MainActivity.this.month =month ;MainActivity.this.day = day;//显示用户选择的 日期 和 时间Toast.makeText(MainActivity.this,year+ "年"+month+ "月" + day+ "日"+hour+ "时"+minute+ "分",Toast.LENGTH_SHORT).show();}});//TimePicker选择监听器timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {MainActivity.this.hour = hourOfDay;MainActivity.this.minute = minute;}});CalendarView calendarview = (CalendarView) findViewById(R.id.calendarview);calendarview.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {@Overridepublic void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {Toast.makeText(MainActivity.this,"您选择的时间是:"+ year + "年" + month + "月" + dayOfMonth + "日",Toast.LENGTH_SHORT).show();}});}
}

xml

<?xml version="1.0" encoding="utf-8" ?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="再见孙悟空-【Android从零单排系列十一】《Android视图控件——日历、日期、时间选择控件》"/><CalendarViewandroid:id="@+id/calendarview"android:layout_width="wrap_content"android:layout_height="wrap_content"/><DatePickerandroid:id="@+id/datePicker"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:startYear="1900"android:endYear="2080"android:calendarViewShown="true"android:spinnersShown="true"></DatePicker><TimePickerandroid:id="@+id/timePicker"android:layout_width="wrap_content"android:layout_height="100dp"android:layout_gravity="center_horizontal"></TimePicker></LinearLayout>
</ScrollView>

【Android从零单排系列十一】《Android视图控件——日历、日期、时间选择控件》相关推荐

  1. 【Android从零单排系列一】《Android系统发展史》

    目录 前言 一.Android 创始人 二.Android 发展历程 三.Android各版本发布时间及特性 1.AndroidBeta:阿童木 2.Android 1.0:发条机器人 3.Andro ...

  2. 【5年Android从零复盘系列之十七】Android自定义View(12):手势绘制及GestureOverlayView事件详解(图文)

    [5年Android从零复盘系列之十七]Android自定义View(12):手势绘制及GestureOverlayView事件浅析 1.基础 掌握View体系事件分发与处理,参考Android自定义 ...

  3. 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】

    [转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...

  4. Android音视频学习系列(九) — Android端实现rtmp推流

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  5. 推荐系统从零单排系列(四)—Word2Vec理论与实践(上)

    推荐系统从零单排系列(四)-Word2Vec理论与实践(上) [导读]Word2Vec是Embedding中非常基本的模型,训练出来的词向量不仅能保持语义与语法上的相关性,并且可以实现类似代数运算的能 ...

  6. android 从零单排 第一期 按键显示helloworld

    啦啦啦- 我是qscqesze 今天开始android的从零单排啦啦啦- 首先从最简单的开始 要求: 程序运行后,单击屏幕上的按键后可以显示一句话,如"Hello World!" ...

  7. Android从零单排之Adapter及其子类

    Adapter--适配器,相信大家在开发中少不了用这个类或者它的子类.本人也在很多地方都用到,所以在这里总结一下. Adapter扮演了一个桥梁的角色,把AdapterView和数据源板绑定一起.Ad ...

  8. Android--从零单排系列(8)--service的使用和利用service进行数据的传递

    service的简单介绍就不写了自己百度这里只会举出几个例子来介绍service的生命周期方法执行顺序,已经service的使用场景 详细请看大神:http://blog.csdn.net/guoli ...

  9. Android从零单排之免费短信验证

    转载请注明住处:http://blog.csdn.net/crazy1235/article/details/41912003 介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息 ...

最新文章

  1. Jeff Doyle
  2. Rest 微服务工程搭建01——微服务提供者Module模块
  3. MATLAB三维曲面绘图你不得不知道的...
  4. cross-env使用
  5. 【Linux】6.服务器会话的screen用法
  6. LVS+Keepalived实现高可用集群
  7. HDU2159(完全背包)
  8. 利用***检测系统防范******方法介绍
  9. java tcp 仿真工具_MODBUS-TCP Client Tester(免费从站仿真工具)V1.01 最新版
  10. 信息学奥赛一本通(1148:连续出现的字符)
  11. Multisim14.0仿真:晶闸管单相半波可控整流电路
  12. Android Native Crash的log分析和定位
  13. 昆仑通态屏幕制作(连载1)---接触篇
  14. 百词斩 计算机英语词汇表,单词之美四级-英语词汇百词斩拓海有道金山词霸典...
  15. 使用python的turtle函数绘制滑稽表情
  16. 鸿合一体机触屏没反应怎么办_一体机电脑触摸屏没反应怎么办 触摸屏一体机故障解决方法...
  17. 明明输给了 SpaceX,OneWeb 为什么还能拿到英国政府的钱?
  18. Jupyter Notebook主题字体设置及自动代码补全
  19. php逐个汉字遍历字符串
  20. PS安装出现浏览器或操作系统不支持以及需要登录的处理方式

热门文章

  1. 【机器学习】k-means算法介绍及简单实现
  2. 网站在制作时用静态页面好还是动态页面利于网站优化
  3. 彻底删除百度搜索框历史记录
  4. Android TextView设置自动识别的超链接字体颜色,及自身点击事件无响应的解决办法
  5. 普联TP-LINK TL-SL5428交换机对应的光模块型号及典型应用方案
  6. STM32CubeIDE安装-NSIS Error问题
  7. 数据库存储图片,且前台从后台拿到图片进行展示
  8. POE、UPS技术的简单理解
  9. redis客户端连接数量_redis设置并发连接数 如何合理设置连接池的大小 - Redis - 服务器之家...
  10. 关于GPU显存占满(即memory usage 很大),但GPU-util很小,导致模型训练很慢