Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Android从零单排系列十一】《Android视图控件——日历、日期、时间选择控件》

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

作者头像
再见孙悟空_
发布于 2023-02-10 13:05:23
发布于 2023-02-10 13:05:23
15K115
代码可运行
举报
运行总次数:15
代码可运行

目录

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

二.几种常见的控件类型

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特性,嵌套滚动 既然这么多支持,那一定支持英语、繁体、简体,任意定制实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
android:firstDayOfWeek:设置一个星期的第一天
android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式
android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式
android:weekDayTextAppearance:工作日的文本出现在日历标题缩写

2. DatePicker –日期选择控件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:设置第一年(内容),比如19940android: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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 ;
    @Override
    protected 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() {
            @Override
            public 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() {
            @Override
            public 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() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
                Toast.makeText(MainActivity.this,"您选择的时间是:"+ year + "年" + month + "月" + dayOfMonth + "日",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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">
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:orientation="vertical">
       <TextView
           android:id="@+id/textview"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="再见孙悟空-【Android从零单排系列十一】《Android视图控件——日历、日期、时间选择控件》"/>
    <CalendarView
        android:id="@+id/calendarview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <DatePicker
        android: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>
    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal">
    </TimePicker>
   </LinearLayout>
</ScrollView>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
25号这个字体颜色在哪设置?
25号这个字体颜色在哪设置?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
日期选择器DatePicker和时间选择器TimePicker
在实际开发中,经常会遇见一些时间选择器、日期选择器、数字选择器等需求,那么从本期开始来学习Android中常用选择器,今天学习的是DatePicker和TimePicker。 一、DatePicker DatePicker是一个比较简单的组件,从FrameLayout派生而来,供用户选择日期。其在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期,如果程序需要获取用户选择的日期则可通过为DatePicker添加 OnDateChangedListener 进行监听来实现。
分享达人秀
2018/02/05
5.5K0
日期选择器DatePicker和时间选择器TimePicker
Android-DatePicker和TimePicker选择日期时间
1.calendarViewShown 设置其是否显示CalenderView组件
圆号本昊
2021/09/24
1.3K0
Android-DatePicker和TimePicker选择日期时间
时间选择(DatePicker和TimePicker)使用
Android中日期选择控件-DatePicker的使用 android 开发 时间选择器TimePicker的使用
李小白是一只喵
2020/04/24
2.7K0
Android基于wheelView的自定义日期选择器(可拓展样式)
主要方法: setAdapter(new StringWheelAdapter(dateList, 7)); //设置Adapter setVisibleItems(3); //设置显示几行数据 setCyclic(true); //设置是否循环显示数据 addChangingListener(onDaysChangedListener) //设置滑动监听器
张拭心 shixinzhang
2022/05/06
3K0
Android基于wheelView的自定义日期选择器(可拓展样式)
[Android笔记7]之通过DatePickerDialog,TimePickerDialog调用系统时间设置
地址 CSDN 地址:http://blog.csdn.net/xiangyong_1521/article/details/77952320 最近工作的时候需要设置时间日期日历等,最终选用的是DatePickerDialog和TimePickerDialog方法来实现,由于还没自定义布局,直接调用就可以,实现起来挺简单,现在通过实现和查看源码来进行实现分析; 目录 DatePickerDialog实现和分析 TimePickerDialog实现和分析 DatePicker实现和分析 Theme的显示样式
项勇
2018/06/19
1.7K0
日历视图CalendarView和定时器Chronometer
上一期学习了AnalogClock、DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chronometer。 一、CalendarView 日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触 摸来滚动日历。如果希望监控该组件的日期改变,则可调用CalendarView的 setOnDateChangeListener()方法为此组件的点击事件添加事件监听器。 用CalendarVie
分享达人秀
2018/02/05
2.2K0
日历视图CalendarView和定时器Chronometer
安卓开发_浅谈TimePicker(时间选择器)
TimePicker也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器 一、方法   public int getBaseline ()          返回窗口空间的文本基准线到其顶边界的偏移量。如果这个部件不支持基准线对齐,这个方法返回-1/。                    返回值   基准线的偏移量,
听着music睡
2018/05/18
2.1K0
Date & Time组件(下)
本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图)。
芯动大师
2023/10/13
2450
Date & Time组件(下)
跟我学Android之九 日期时间组件
AnalogClock​是一个模拟时钟视图,使用AnalogClock标签进行布局,除了长宽外基本需要其他属性,对应的Java类是android.widget.AnalogClock,布局示例如下:
张哥编程
2024/12/17
1520
跟我学Android之九  日期时间组件
Android项目实战(二十九):酒店预定日期选择
先看需求效果图: 几个需求点: 1、显示当月以及下个月的日历 (可自行拓展更多月份) 2、首次点击选择“开始日期”,再次点击选择"结束日期"   (1)、如果“开始日期” “结束日期” 相同    (
听着music睡
2018/05/18
1.5K0
Android常用控件(下拉列表,日期时间选择器,多选单选框)
忽然间就开学了,突然有些不知所措,刚开学的事情乱糟糟的堆在一块,也没有什么心思学习了。 今天课比较少,看了些关于Android的常用控件的知识,整理下来。
零式的天空
2022/03/22
3.4K0
Android常用控件(下拉列表,日期时间选择器,多选单选框)
安卓开发_浅谈DatePicker(日期选择器)
DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker
听着music睡
2018/05/18
2.5K0
Android之控件与布局,结构知识点,基础完结
在Android中我们常常用到很多UI控件,如TextView,EditText,ImageView,Button,ImageButton,ToggleButton,CheckBox,RadioButton等等这些可以自己多用就会了。
达达前端
2019/07/03
1.2K0
Android之控件与布局,结构知识点,基础完结
一步一步构建自己的简单日历控件 MySimpleCalendar[通俗易懂]
2018年2月 = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 }
全栈程序员站长
2022/07/20
1.3K0
Android精通教程V
大家好,我是 Vic,今天给大家带来Android精通教程V的概述,希望你们喜欢
达达前端
2019/07/03
8120
Android精通教程V
相关推荐
日期选择器DatePicker和时间选择器TimePicker
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验