源码下载地址 :

-- 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 应用开发】Android - 时间 日期相关组件的更多相关文章

  1. Android - 时间 日期相关组件

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

  2. Android Studio开发环境配置以及相关说明

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...

  3. Android开发之时间日期2

    昨天给大家分享了一个时间和日期设置的小例子,今天发现Android的布局组件中有关于时间和日期的设置的组件,废话不多说,先给大家分享一下我的经验. 时间日期设置组件:TimePicker.DatePi ...

  4. Android 桌面Widget开发要点(时间日期Widget)

    最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget.对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来. 桌面Widget ...

  5. Android开发之时间日期1

     对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子 ...

  6. 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例

    标题有点晃眼,本次分享是002期博文的实践故事,不会有任何代码.也不会教别人android 如何开发,类似博文已经有大批大批,而且还会有陆陆续续的人写,我写的文章,主要是经验之谈,希望总结出的一些方法 ...

  7. android studio 开发android app 真机调试

    大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...

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

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

  9. Android多媒体开发-stagefright及AwesomePlayer相关知识梳理

    android的多媒体框架中, stagefright其实是AwesomePlayer的代理,就是个皮包公司. status_t StagefrightPlayer::setDataSource( c ...

随机推荐

  1. Objective-C特有类型——id

    Objective-C特有类型--id OC里,id和int.double等一样,是一个类型 不同的是: id是一个万能指针,能指向/操作任何OC对象 相当于 (NSObject *) 用法 id i ...

  2. iOS学习笔记--触摸事件

    最近空闲时间在学习iOS相关知识,几周没有更新文章了,今天总结下这些天的学习内容,也整理下iOS的学习笔记,以便以后查阅翻看- iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件 响 ...

  3. iOS使用自签名证书实现HTTPS请求

    概述 在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求. 默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向 ...

  4. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  5. 高性能的Redis代理TwemProxy

    TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分Redis Cluster的功能: ²  支持和6479.之后相应地,配置好两个Redis实例并启动.现在就可以启 ...

  6. 协议系列之IP协议

    1.协议 协议(protocol)的定义:为计算机网络中进行数据交换而建立的规则.标准或约定的集合.两个终端相互通信时双方达成的一种约定,规定了一套通信规则,双方通信必须遵守这些规则.这些规则规定了分 ...

  7. JDBC编程-优化程序(六)

    首先完成DTO类的编写 DTO类是data tranfer object也就是数据传输类,DTO主要用于数据的传输操作,其中包含属性值,以及构造方法和getter ,setter方法等,不会包含业务逻 ...

  8. Map俩种遍历方式

    Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法 keySet Set<K> keySet() 返回此映射中包含的键的 Set 视图.该 set 受映射支 ...

  9. Android必知必会-获取视频文件的截图、缩略图

    背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取 ...

  10. SHA算法

    安全Hash函数(SHA)是使用最广泛的Hash函数.由于其他曾被广泛使用的Hash函数都被发现存在安全隐患,从2005年至今,SHA或许是仅存的Hash算法标准. SHA发展史 SHA由美国标准与技 ...