`

Android - 时间 日期相关组件

 
阅读更多

源码下载地址 :

-- 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中时间, 日期相关组件使用实例, 配套讲解博客地址 : ...Android - 时间 日期相关组件 AnalogClock DigitalClock Chronometer DatePicker TimePicker CalendarView

    时间选择器Android-PickerView

    在Android开发中,时间选择器是一个非常常见的组件,用于让用户便捷地选取时间,例如小时、分钟,甚至日期。"Android-PickerView"是一个专门用于实现这种功能的库,它提供了多种样式和实现方式,包括弹窗式和XML布局...

    android-ndk(android-ndk-r23b-linux.zip)

    3. **本地化支持**:NDK允许开发者用原生代码实现特定语言或地区的功能,比如本地化的日期和时间格式处理。 4. **JNI接口**:Java Native Interface (JNI) 是Android应用与NDK之间通信的关键。通过JNI,Java代码...

    非常不错的日期选择器android-times-square

    5. **集成简便**:根据描述,集成 android-times-square 到你的 Android 项目中非常简单,这意味着开发者可以快速地在项目中引入这一功能,无需花费大量时间编写自定义的日期选择组件。 6. **源码开放**:作为开源...

    Android应用源码之android-times-square Android日历部件.zip

    在Android开发中,日历控件是一个常用且重要的组件,它能够帮助用户方便地选择日期,为应用程序提供时间相关的功能。android-times-square是一个专门为Android设计的日历部件库,它为开发者提供了美观、易于使用的...

    Android-Android-FileBrowser-FilePicker一个Android文件浏览和选择控件

    **Android-FileBrowser-FilePicker** 是一个专为Android平台设计的文件浏览和选择组件,它为开发者提供了方便的文件操作功能,使用户能够在应用程序中浏览、选择和管理本地文件。这个控件对于那些需要集成文件操作...

    git日历开源组件android-times-square-master

    除了基本功能,开发者还可以通过继承和扩展组件来实现更多高级特性,如添加日期标记(显示特定日期的事件)、实现时间选择(不只是日期)等。此外,为了兼容更多设备和Android版本,开发者还可以针对低版本系统进行...

    android-sdk_r24.4.1-linux+jdk-8u144-linux-x64.rar

    还有默认方法,允许在接口中添加非抽象方法的实现,以及新的日期/时间API,提供了更强大和灵活的日期处理功能。对于Android开发,JDK 1.8是必需的,因为它是构建和运行Android应用的基础。 接下来是“android-sdk_r...

    Android -- 时间和日期滚轮效果.zip

    在Android开发中,为了提供用户友好的交互体验,有时我们需要实现时间和日期的选择功能,而滚轮效果(Wheel View)是一种常见的实现方式。本资源“Android -- 时间和日期滚轮效果.zip”提供了一个实现这一功能的实例...

    android 开源的日期、时间组件

    在Android开发中,日期和时间组件是不可或缺的部分,它们用于用户界面中展示和选择日期、时间。本主题将深入探讨一个开源的日期和时间组件,它可以帮助开发者更方便地实现这些功能,同时提供了自定义和扩展的可能性...

    Android -- Time-Selector日期选择控件.zip

    `Time-Selector`是一个自定义的日期选择控件,它基于Android原生的`TimePicker`组件进行优化,提供了更加美观和用户友好的交互方式。本项目的目标是为开发者提供一个易于使用、功能丰富的日期和时间选择解决方案。 ...

    Android-PickerView-master

    在 "Android-PickerView-master" 中,这个组件被优化以实现更高效、更美观的时间和地点选择。 二、实现原理 1. **自定义视图**:项目通过自定义 View 类扩展了 Android 的原始 PickerView,添加了特定的样式和行为...

    Android-WheelDateTimePicker:Android滚轮日期时间选择组件,日期支持农历

    Android滚轮日期时间选择组件,日期支持农历 注:(项目进一步完善中,暂时不建议用于生产环境) ##简单实用 以日期选择为例说明(时间选择同理): //首先创建监听器 DatePickerFragment.OnDateSetListener ...

    android-times-square日历控件

    Square公司开源的`android-times-square`库,正是为Android平台量身定制的一个强大且易用的日历组件。本文将深入探讨这个库的核心特性和使用方法,帮助开发者更好地理解和应用。 `android-times-square`控件的设计...

    Android-一个非常好用的AndroidPickerView库

    1. **时间选择器**:这是一个用于让用户选择日期和时间的组件,常见于设置闹钟、创建事件等场景。它通常会显示年、月、日和小时、分钟的滚动条,用户可以通过滚动来选择具体的时间值。 2. **聚合时间选择器**:这种...

    Android:日期-时间-城市选择器

    在Android开发中,有时我们需要为用户提供选择日期、时间或特定城市的界面组件,这通常涉及到`DatePicker`、`TimePicker`以及自定义的城市选择器。在iOS系统中,这些选择器通常采用滚轮样式,视觉效果统一且易于操作...

    Android强大的日期时间选择控件

    在Android开发中,日期时间选择控件是用户界面中常见且重要的组成部分,它允许用户方便地选择日期或时间。在Android SDK中,内置了DatePicker和TimePicker两种原生控件,但有时候,开发者可能需要更加强大、定制化的...

    安卓Android源码——android-times-square 安卓Android日历部件.zip

    "安卓"和"android"表明这与Google的Android操作系统有关,而"源码"则意味着我们可以访问到这个组件的原始编程代码,可以进行学习、修改或定制以满足特定需求。 【知识点详解】 1. **Android开发环境**:在Android...

    HBuilderX 离线SDK Android-SDK@2.6.16.80137_20200426

    本文将深入探讨HBuilderX离线SDK——Android-SDK@2.6.16.80137_20200426的相关知识,帮助开发者更好地理解和利用这一资源。 首先,我们来理解什么是SDK。SDK,全称为软件开发工具包,是一组用于开发特定平台或框架...

    android-27.rar

    2. **智能文本选择**:系统能识别并解析剪贴板中的地址、日期和时间,提供快速操作选项,如导航或添加日历事件。 3. **App Shortcuts API**:开发者可以创建快捷方式,用户长按应用图标时会显示,为常用功能提供...

Global site tag (gtag.js) - Google Analytics