源码下载地址 :

-- CSDN :  http://download.csdn.net/detail/han1202012/6856737

-- GitHub : https://github.com/han1202012/Timer_Date_Test.git

.

作者 :万境绝尘 

转载请注明出处  : http://blog.csdn.net/shulianghan/article/details/18314667

.

一. 时钟组件

1. AnalogClock组件

外观 : 该组件显示一个表盘, 有分针和秒针转动;

属性介绍 : 该组件可以设置表盘图片, 时针 分针显示图片;

-- 设置表盘 : android:dial, 设置R.drawable资源图片;

-- 设置时针 : android:hand_hour, 设置R.drawable资源图片;

-- 设置分针 : android:hand_minute, 设置R.drawable资源图片;

2. DigitalClock组件

外观 : 该组件就是一个TextView组件, 显示的是当前时间的文本;

属性 : 该组件不能设置android:text属性, 设置了也无效;

3. 源码示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <!-- 数字时钟, 可以设置字体大小颜色 -->
<DigitalClock
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="20pt"
android:textColor="#DF0101"/> <TextView
android:layout_height="20dp"
android:layout_width="fill_parent"
android:background="#01DF01"/> <!-- 模拟时钟, 可设置表盘, 分针, 时针的针脚 -->
<AnalogClock
android:layout_width="200dp"
android:layout_height="200dp"
android:dial="@drawable/clock"
/> </LinearLayout>

效果图 :

二. 计时器Chronometer

格式属性 : android:format, 指定计时器的计时格式;

常用方法 : 计时器的方法是重点所在, 可以控制计时器开始, 停止等动作;

-- 设置时间 : setBase(long), 设置起始时间;

-- 设置格式 : setFormat(string), 设置时间显示格式;

-- 开始计时 : start(), 开始计时方法;

-- 停止计时 : stop(), 停止计时方法;

-- 设置监听 : setOnChronometerTickListener(), 设置一个监听器, 当计时器计时变化的时候回调这个方法;

实例
:

XML源码 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Chronometer
android:id="@+id/chronometer"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="20pt"
android:textColor="#DF0101"/> <!-- checked为true的时候, 显示开始计时, 此时没有计时 -->
<ToggleButton
android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15pt"
android:textOn="开始计时"
android:textOff="停止计时"
android:checked="true"/> </LinearLayout>

Activity代码 :

package shuliang.han.time_date_test;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton; public class ChronometerActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chronometer); final Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggle); toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){//从 显示 停止计时 点击, checked false -> true 停止计时, 显示 开始计时
chronometer.stop();
}else{// 显示开始计时 点击, checked true -> false 开始计时, 显示 停止计时
chronometer.start();
chronometer.setBase(SystemClock.elapsedRealtime());
}
}
}); //设置一个监听器, 当超过5秒计时的时候Toast信息
chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if(SystemClock.elapsedRealtime() - chronometer.getBase() > 5 * 1000)
Toast.makeText(getApplicationContext(), "5秒了", Toast.LENGTH_LONG).show();
}
});
} }

效果图 :

.

作者 :万境绝尘 

转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18314667

.

三. 日历视图CalendarView

日历视图 : 日历视图显示了一个7 * N 的方格, 即日历, N可以设置, 通过滚动视图, 可以选择其他月份年份的日期, 同时也可以设置日期改变监听器, 监听日历选择事件;

日历视图的XML属性 :

-- 设置样式 : android:dateTextAppearance, 设置日期文字显示样式;

-- 设置首日 : android:firstDayOfWeek, 设置星期几是每周的第一天, 默认是周一;

-- 选中颜色 : android:focusedMonthDateColor, 设置选中日期所在月份日期颜色;

-- 最大日期 : android:maxDate, 设置支持的最大日期, 以 mm/dd/yyyy 格式指定;

-- 最小日期 : android:minDate, 设置支持的最小日期, 以 mm/dd/yyyy 格式指定;

-- 选中竖线 : android:selectedDateVerticalBar, 设置被选中日期两边的竖线Drawable, 即R.drawable.int资源;

-- 选周颜色 : android:selectedWeekBackground, 设置被选中日期所在周的背景颜色;

-- 周数显示 : android:showWeekNumber, 设置是否显示周数;

-- 设置周数 : android:shownWeekCount, 设置该日历组件一共显示几周;

-- 未选颜色 : android:unfocusedMonthDateColor, 设置未被选中的月份的日期颜色;

-- 星期样式 : android:weekDayTextAppearance, 设置星期几的文字样式;

-- 周号颜色 : android:weekNumberColor, 设置周编号的颜色;

-- 周分割色 : android:weekSeparatorLineColor, 设置周分隔线颜色;

实例 :

XML源码 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="日历视图"/> <!--
android:firstDayOfWeek 属性, 设置星期几是一周的开始
android:shownWeekCount 属性, 设置显示几个星期的日历
android:selectedWeekBackgroundColor 属性, 设置当前选中日期所在的星期背景颜色
android:focusedMonthDateColor 属性, 显示当前选中月份的日期颜色, 在这个日历中可能同时显示2个月份的日历
android:weekSeparatorLineColor 属性, 设置将日期分开的线条颜色
android:unfocusedMonthDateColor 属性, 设置没有选中的月份日期颜色
-->
<CalendarView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:firstDayOfWeek="7"
android:shownWeekCount="4"
android:selectedWeekBackgroundColor="#aff"
android:focusedMonthDateColor="#f00"
android:weekSeparatorLineColor="#ff0"
android:unfocusedMonthDateColor="#f9f"
android:id="@+id/calendarView" /> </LinearLayout>

Activity源码 :

package shuliang.han.time_date_test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CalendarView;
import android.widget.CalendarView.OnDateChangeListener;
import android.widget.Toast; public class CalendarActivity extends Activity { private CalendarView calendarView; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar); calendarView = (CalendarView) findViewById(R.id.calendarView);
//设置日期改变监听器, 日期改变的时候激活该监听器
calendarView.setOnDateChangeListener(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month,
int dayOfMonth) {
Toast.makeText(getApplicationContext(), "选择的日期是 : " + year +" 年"
+ month + " 月 " + dayOfMonth + "日", Toast.LENGTH_LONG).show();
}
});
}
}

效果图 :

四. 时间选择器

TimePicker可以供用户选择时间, 组件比较美观, 还可以设置时间改变监听器, 一旦时间改变, 就会触发回调方法;

实例源码 :

XML文件 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="时间选择"/> <TimePicker
android:id="@+id/time_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/> </LinearLayout>

Activity源码 :

package shuliang.han.time_date_test;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.Toast; public class TimePickerActivity extends Activity { private TimePicker timePicker; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.time_picker); timePicker = (TimePicker) findViewById(R.id.time_picker); //打印当前时间
getCurrentDateTime(); timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(getApplicationContext(), "改变时间 : " + hourOfDay + "时" + minute + "分", Toast.LENGTH_LONG).show();
}
});
} /*
* 获取当前的日期和时间, 并将日期时间Toast出来
*/
private void getCurrentDateTime() {
//1. 获取当前日历
Calendar calendar = Calendar.getInstance();
//2. 获取时间日期方法 : calendar.get(Calendar.YEAR)
Toast.makeText(getApplicationContext(), "当前时间 : " +
calendar.get(Calendar.YEAR) + "年" +
calendar.get(Calendar.MONTH) + "月" +
calendar.get(Calendar.DATE) + "日" +
calendar.get(Calendar.HOUR) + "时" +
calendar.get(Calendar.MINUTE) + "分" +
calendar.get(Calendar.SECOND) + "秒"
, Toast.LENGTH_LONG).show();
}
}

效果图 :

五. 日期选择器DatePicker

日期选择器常用属性 :

-- 显示日历 : android:calendarViewShown, 是否显示CalendarView日历组件;

-- 选择最后 : android:endYear, 该选择器是否允许选择最后一年;

-- 最大日期 : android:maxDate, 设置日期选择器的最大日期, 格式 mm/dd/yyyy;

-- 最小日期 : android:minDate, 设置日期选择器的最小日期, 格式 mm/dd/yyyy;

-- 选择组件 : android:spinnerShown, 是否显示Spinner组件;

-- 选择首年 : android:startYear, 是否允许选择首年;

实例:

XML源码 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <!--
android:startYear 属性 : 设置可选择日期的开始年份
android:endYear 属性 : 设置可选择日期的结束年份
android:calendarViewShown 属性 : 设置是否显示CalendarView组件
android:spinnersShown 属性 : 设置是否显示
-->
<DatePicker
android:id="@+id/date_picker"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:startYear="2000"
android:endYear="2020"
android:calendarViewShown="true"
android:spinnersShown="true"/> </LinearLayout>

效果图 :

.

作者 :万境绝尘 

转载请注明出处  : http://blog.csdn.net/shulianghan/article/details/18314667

.

源码下载地址 :

-- CSDN :  http://download.csdn.net/detail/han1202012/6856737

-- GitHub : https://github.com/han1202012/Timer_Date_Test.git

Android - 时间 日期相关组件的更多相关文章

  1. 【Android 应用开发】Android - 时间 日期相关组件

    源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...

  2. Android 时间日期Widget 开发详解

    桌面Widget其实就是一个显示一些信息的工具(现在也有人开发了一些有实际操作功能的widget.例如相机widget,可以直接桌面拍照).不过总的来说,widget主要功能就是显示一些信息.我们今天 ...

  3. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  4. 时间日期相关:Date类、DateFormat类、Calendar类

    1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...

  5. Java 各种时间日期相关的操作

    目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ...

  6. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

  7. react-native-picker 实现省市区 时间日期组件

    github示例以及详细参数:https://github.com/beefe/react-native-picker 先 安装 link npm install react-native-picke ...

  8. Java 8 时间日期库的20个使用示例

    java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...

  9. java8新的时间日期库及使用示例

    转自:https://www.cnblogs.com/comeboo/p/5378922.html 来自:Java译站 链接:http://it.deepinmind.com/java/2015/03 ...

随机推荐

  1. 【解决】could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

    在同一套环境中跑了很多个项目都是用 docker-compose的方式启动的,导致创建的自定义网络过多出现下面的报错 Error response from daemon: could not fin ...

  2. php 遍历一个文件夹下的所有文件和子文件

    php 遍历一个文件夹下的所有文件和子文件 <?php /** * 将读取到的目录以数组的形式展现出来 * @return array * opendir() 函数打开一个目录句柄,可由 clo ...

  3. linux 操作之压缩与解压

    压缩与解压 压缩格式:zip , rar , 7z , iso , exe gzip (以下是命令操作) gzip [文件名]  #压缩成gz格式 , 原来的文件消失 , 不支持目录. bzip2 - ...

  4. Linux入门——vsftpd

    vsftpd Introduction vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP ...

  5. HDFS的JavaAPI

    配置windows平台的Hadoop环境 在 windows 上做 HDFS 客户端应用开发,需要设置 Hadoop 环境,而且要求是windows 平台编译的 Hadoop,不然会报以下的错误: F ...

  6. Spark_安装配置_运行模式

    一.Spark支持的安装模式: 1.伪分布式(一台机器即可) 2.全分布式(至少需要3台机器) 二.Spark的安装配置 1.准备工作 安装Linux和JDK1.8 配置Linux:关闭防火墙.主机名 ...

  7. wordpress网站程序漏洞修复办法

    近日wordpress被爆出高危的网站漏洞,该漏洞可以伪造代码进行远程代码执行,获取管理员的session以及获取cookies值,漏洞的产生是在于wordpress默认开启的文章评论功能,该功能在对 ...

  8. 《TCP/IP详解 卷1:协议》系列分享专栏

    <TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...

  9. ACM数论-快速幂

    ACM数论——快速幂 快速幂定义: 顾名思义,快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. 原理: 以下以求a的b次方来介绍: 把b转换成 ...

  10. 十分钟搭建和使用ELK日志分析系统

    前言 为满足研发可视化查看测试环境日志的目的,准备采用EK+filebeat实现日志可视化(ElasticSearch+Kibana+Filebeat).题目为“十分钟搭建和使用ELK日志分析系统”听 ...