【Android 应用开发】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 - 时间 日期相关组件
源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...
- Android Studio开发环境配置以及相关说明
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...
- Android开发之时间日期2
昨天给大家分享了一个时间和日期设置的小例子,今天发现Android的布局组件中有关于时间和日期的设置的组件,废话不多说,先给大家分享一下我的经验. 时间日期设置组件:TimePicker.DatePi ...
- Android 桌面Widget开发要点(时间日期Widget)
最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget.对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来. 桌面Widget ...
- Android开发之时间日期1
对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子 ...
- 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例
标题有点晃眼,本次分享是002期博文的实践故事,不会有任何代码.也不会教别人android 如何开发,类似博文已经有大批大批,而且还会有陆陆续续的人写,我写的文章,主要是经验之谈,希望总结出的一些方法 ...
- android studio 开发android app 真机调试
大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...
- 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类
日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...
- Android多媒体开发-stagefright及AwesomePlayer相关知识梳理
android的多媒体框架中, stagefright其实是AwesomePlayer的代理,就是个皮包公司. status_t StagefrightPlayer::setDataSource( c ...
随机推荐
- 初识gd库
必备基础 开启GD拓展 列表使用 获取图片信息代码 图片详细信息 特效函数 示例 运行结果 分析 获取图片基本信息 获取图片宽度 获取图片高度 获取图片后缀名 获取图片mime类型 操作图片 添加文字 ...
- qq安全原理
故事总要有缘由,那么这个故事的缘由就是,当我以前写了一个获取其它进程密码框密码的时候(前几篇博客中有描述),我抱着试一试的心情去试探了一下能不能得到 QQ 的密码,当我抓到密码框的句柄,然后输入给程序 ...
- Android4.3 屏蔽HOME按键返回桌面详解(源码环境下)
点击打开链接 首先声明我是做系统开发的(高通平台),所以下面介绍的方法并不适合应用开发者. 最经有个需求要屏蔽HOME按键返回桌面并且实现自己的功能,发现以前的方式报错用不了,上网搜索了一下,发现都是 ...
- Dynamics CRM2016 新功能之从CRM APP中导出数据至EXCEL
新版的CRM对移动端做了很多的改进,这归咎于微软对APP端的越来越重视.自己装了个IOS版的APP,体验了下基本的功能,比原来好用很多很顺滑,这里要介绍的是一个新的数据导出功能. 咱们进入case列表 ...
- everything of people’s life can changed in their twenties
还记得三年前,独自背着行李,流浪远方,来到曾经只在地理课本上才熟悉的北国,带着好奇,带着期望,带着激动的心情,想感受毛爷爷当年霸气的北国风光,千里冰封的美丽,想知道北方的面条到底有多少种花样,想走进那 ...
- Java中循环声明变量方法
Java循环声明变量 之前想这样做,但是网上一直搜索不到,下面是我的方式 项目中 // 得到需要查询外表的数量,然后分别创建缓存,插入数据多的时候如果编码在缓存里面,就不需要再去查询数据库了.key: ...
- Github Pages 搭建HEXO主题个人博客
跌跌撞撞,总算是建立起来了.回首走过的这么多坑,也真的是蛮不容易的.那么就写点东西,记录我是怎么搭建的吧. 准备工作 安装Node.js: 用于生成静态页面,我们需要到官网上去下载即可.http:// ...
- GCD API 记录 (三)
本篇就不废话啦,接着上篇记录我见过或者使用过的与GCD相关的API.由于一些API使用的非常少,用过之后难免会忘记,还是记录一下比较好. 6.dispatch_group_wait 该API依然是与d ...
- 【一天一道Leetcode】#203.Remove Linked List Elements
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 我的个人博客已创建,欢迎大家持续关注! 一天一道le ...
- shell入门之函数应用
最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ...