源码下载地址 :

-- 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 {@Overrideprotected 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() {@Overridepublic 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() {@Overridepublic 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 属性, 设置没有选中的月份日期颜色     -->    <CalendarViewandroid: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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.calendar);calendarView = (CalendarView) findViewById(R.id.calendarView);//设置日期改变监听器, 日期改变的时候激活该监听器calendarView.setOnDateChangeListener(new OnDateChangeListener() {@Overridepublic 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.time_picker);timePicker = (TimePicker) findViewById(R.id.time_picker);//打印当前时间getCurrentDateTime();timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {@Overridepublic 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

更多相关文章

  1. 《android 利用自带技术解析json字符》
  2. Android(安卓)ZXing改横屏识别为竖屏识别[转]
  3. Activity 组件的启动流程
  4. 我的Android进阶之旅------>Android中android:visibility 属性VI
  5. Android(安卓)Jetpack架构组件(七)之WorkManager
  6. android:scrollbars属性和弹出键盘的问题
  7. android:duplicateParentState属性解释
  8. Android中FloatingActionButton的基本使用
  9. Android(安卓)学习资料大集合

随机推荐

  1. linux 下使用 vim+cscope+ctags+taglist+
  2. linux下socket实现TCP通信的简单程序接口
  3. 嵌入式linux 字节对齐 导致输出Alignment
  4. 0K6410学习之linux移植nand flash
  5. linux的常用命令
  6. linux安装PHP环境
  7. Linux 安装MongoDB 2.6.5
  8. Linux运维:安装CentOS7.2-图解
  9. 在Linux和FreeBSD之间移植bash脚本的正确
  10. 用VXE保护Linux系统安全