zoukankan      html  css  js  c++  java
  • 安卓计时器

    源码下载地址 :

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

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

    一. 时钟组件

    1. AnalogClock组件

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

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

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

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

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

    2. DigitalClock组件

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

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

    3. 源码示例

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.       
    7.     <!-- 数字时钟, 可以设置字体大小颜色 -->  
    8.     <DigitalClock   
    9.         android:layout_height="wrap_content"  
    10.         android:layout_width="wrap_content"  
    11.         android:textSize="20pt"  
    12.         android:textColor="#DF0101"/>  
    13.       
    14.     <TextView   
    15.         android:layout_height="20dp"  
    16.         android:layout_width="fill_parent"  
    17.         android:background="#01DF01"/>  
    18.       
    19.     <!-- 模拟时钟, 可设置表盘, 分针, 时针的针脚 -->  
    20.     <AnalogClock   
    21.         android:layout_width="200dp"  
    22.         android:layout_height="200dp"  
    23.         android:dial="@drawable/clock"  
    24.         />  
    25.   
    26. </LinearLayout>  


    效果图 : 

    二. 计时器Chronometer

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

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

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

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

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

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

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

    --获取计时器的内容并分别分、秒显示: 

    String []wholeTimeString = chronometer.getText().toString().split(":");
                String minute = wholeTimeString[0];
                String seconds = wholeTimeString[1];
                
                if(minute.charAt(0)=='0'){
                    if(minute.equals("00"))minute="0";
                    else minute = String.valueOf(minute.charAt(1));
                    
                }
    
    wholeTime.setText("一共做题耗时:" + minute+ "分钟,"+ seconds + "秒钟。");

    实例 

    XML源码 : 

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.       
    7.     <Chronometer   
    8.         android:id="@+id/chronometer"  
    9.         android:layout_height="wrap_content"  
    10.         android:layout_width="wrap_content"  
    11.         android:textSize="20pt"  
    12.         android:textColor="#DF0101"/>  
    13.       
    14.     <!-- checked为true的时候, 显示开始计时, 此时没有计时 -->  
    15.     <ToggleButton   
    16.         android:id="@+id/toggle"  
    17.         android:layout_width="wrap_content"  
    18.         android:layout_height="wrap_content"  
    19.         android:textSize="15pt"  
    20.         android:textOn="开始计时"  
    21.         android:textOff="停止计时"  
    22.         android:checked="true"/>  
    23.   
    24. </LinearLayout>  


    Activity代码 : 

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. package shuliang.han.time_date_test;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.os.SystemClock;  
    6. import android.widget.Chronometer;  
    7. import android.widget.Chronometer.OnChronometerTickListener;  
    8. import android.widget.CompoundButton;  
    9. import android.widget.CompoundButton.OnCheckedChangeListener;  
    10. import android.widget.Toast;  
    11. import android.widget.ToggleButton;  
    12.   
    13. public class ChronometerActivity extends Activity {  
    14.   
    15.     @Override  
    16.     protected void onCreate(Bundle savedInstanceState) {  
    17.         super.onCreate(savedInstanceState);  
    18.         setContentView(R.layout.chronometer);  
    19.           
    20.         final Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);  
    21.         ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggle);  
    22.           
    23.         toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {  
    24.               
    25.             @Override  
    26.             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {  
    27.                 if(isChecked){//从  显示 停止计时 点击, checked false -> true 停止计时, 显示 开始计时  
    28.                     chronometer.stop();  
    29.                 }else{// 显示开始计时 点击, checked true -> false 开始计时, 显示 停止计时  
    30.                     chronometer.start();  
    31.                     chronometer.setBase(SystemClock.elapsedRealtime());  
    32.                 }  
    33.             }  
    34.         });  
    35.           
    36.         //设置一个监听器, 当超过5秒计时的时候Toast信息  
    37.         chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {  
    38.             @Override  
    39.             public void onChronometerTick(Chronometer chronometer) {  
    40.                 if(SystemClock.elapsedRealtime() - chronometer.getBase() > 5 * 1000)  
    41.                     Toast.makeText(getApplicationContext(), "5秒了", Toast.LENGTH_LONG).show();  
    42.             }  
    43.         });  
    44.     }  
    45.       
    46. }  


    效果图 

    .

    作者 :万境绝尘 

    转载请注明出处 : 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源码 : 

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.       
    7.     <TextView   
    8.         android:layout_height="wrap_content"  
    9.         android:layout_width="fill_parent"  
    10.         android:text="日历视图"/>  
    11.       
    12.     <!--   
    13.         android:firstDayOfWeek 属性, 设置星期几是一周的开始  
    14.         android:shownWeekCount 属性, 设置显示几个星期的日历  
    15.         android:selectedWeekBackgroundColor 属性, 设置当前选中日期所在的星期背景颜色  
    16.         android:focusedMonthDateColor 属性, 显示当前选中月份的日期颜色, 在这个日历中可能同时显示2个月份的日历  
    17.         android:weekSeparatorLineColor 属性, 设置将日期分开的线条颜色  
    18.         android:unfocusedMonthDateColor 属性, 设置没有选中的月份日期颜色  
    19.      -->  
    20.     <CalendarView      
    21.         android:layout_width="match_parent"  
    22.         android:layout_height="match_parent"  
    23.         android:firstDayOfWeek="7"  
    24.         android:shownWeekCount="4"  
    25.         android:selectedWeekBackgroundColor="#aff"  
    26.         android:focusedMonthDateColor="#f00"  
    27.         android:weekSeparatorLineColor="#ff0"  
    28.         android:unfocusedMonthDateColor="#f9f"  
    29.         android:id="@+id/calendarView" />  
    30.       
    31.   
    32. </LinearLayout>  


    Activity源码 : 

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. package shuliang.han.time_date_test;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.widget.CalendarView;  
    6. import android.widget.CalendarView.OnDateChangeListener;  
    7. import android.widget.Toast;  
    8.   
    9. public class CalendarActivity extends Activity {  
    10.   
    11.     private CalendarView calendarView;  
    12.       
    13.     @Override  
    14.     protected void onCreate(Bundle savedInstanceState) {  
    15.         super.onCreate(savedInstanceState);  
    16.         setContentView(R.layout.calendar);  
    17.           
    18.         calendarView = (CalendarView) findViewById(R.id.calendarView);  
    19.         //设置日期改变监听器, 日期改变的时候激活该监听器  
    20.         calendarView.setOnDateChangeListener(new OnDateChangeListener() {  
    21.             @Override  
    22.             public void onSelectedDayChange(CalendarView view, int year, int month,  
    23.                     int dayOfMonth) {  
    24.                 Toast.makeText(getApplicationContext(), "选择的日期是 : " + year +" 年"  
    25.                         + month + " 月 " + dayOfMonth + "日", Toast.LENGTH_LONG).show();  
    26.             }  
    27.         });  
    28.     }  
    29. }  


    效果图 

    四. 时间选择器

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

    实例源码 : 

    XML文件 : 

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.       
    7.     <TextView   
    8.         android:layout_height="wrap_content"  
    9.         android:layout_width="wrap_content"  
    10.         android:text="时间选择"/>  
    11.       
    12.     <TimePicker   
    13.         android:id="@+id/time_picker"  
    14.         android:layout_width="wrap_content"  
    15.         android:layout_height="wrap_content"  
    16.         android:layout_gravity="center_horizontal"/>  
    17.   
    18. </LinearLayout>  


    Activity源码 : 

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. package shuliang.han.time_date_test;  
    2.   
    3. import java.util.Calendar;  
    4.   
    5. import android.app.Activity;  
    6. import android.os.Bundle;  
    7. import android.widget.DatePicker;  
    8. import android.widget.TimePicker;  
    9. import android.widget.TimePicker.OnTimeChangedListener;  
    10. import android.widget.Toast;  
    11.   
    12. public class TimePickerActivity extends Activity {  
    13.   
    14.     private TimePicker timePicker;  
    15.       
    16.     @Override  
    17.     protected void onCreate(Bundle savedInstanceState) {  
    18.         super.onCreate(savedInstanceState);  
    19.         setContentView(R.layout.time_picker);  
    20.           
    21.         timePicker = (TimePicker) findViewById(R.id.time_picker);  
    22.           
    23.         //打印当前时间  
    24.         getCurrentDateTime();  
    25.           
    26.         timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {  
    27.             @Override  
    28.             public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {  
    29.                 Toast.makeText(getApplicationContext(), "改变时间 : " + hourOfDay + "时" + minute + "分", Toast.LENGTH_LONG).show();  
    30.             }  
    31.         });  
    32.     }  
    33.       
    34.     /* 
    35.      * 获取当前的日期和时间, 并将日期时间Toast出来 
    36.      */  
    37.     private void getCurrentDateTime() {  
    38.         //1. 获取当前日历  
    39.         Calendar calendar = Calendar.getInstance();  
    40.         //2. 获取时间日期方法 : calendar.get(Calendar.YEAR)  
    41.         Toast.makeText(getApplicationContext(), "当前时间 : " +   
    42.             calendar.get(Calendar.YEAR) + "年" +   
    43.             calendar.get(Calendar.MONTH) + "月" +   
    44.             calendar.get(Calendar.DATE) + "日" +   
    45.             calendar.get(Calendar.HOUR) + "时" +   
    46.             calendar.get(Calendar.MINUTE) + "分" +   
    47.             calendar.get(Calendar.SECOND) + "秒"  
    48.                 , Toast.LENGTH_LONG).show();  
    49.     }  
    50. }  


    效果图 : 

    五. 日期选择器DatePicker

    日期选择器常用属性 : 

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

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

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

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

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

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

    实例:

    XML源码 : 

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="vertical" >  
    6.       
    7.     <!--   
    8.         android:startYear 属性 : 设置可选择日期的开始年份  
    9.         android:endYear 属性 : 设置可选择日期的结束年份  
    10.         android:calendarViewShown 属性 : 设置是否显示CalendarView组件  
    11.         android:spinnersShown 属性 : 设置是否显示  
    12.      -->  
    13.     <DatePicker   
    14.         android:id="@+id/date_picker"  
    15.         android:layout_height="wrap_content"  
    16.         android:layout_width="wrap_content"  
    17.         android:layout_gravity="center_horizontal"  
    18.         android:startYear="2000"  
    19.         android:endYear="2020"  
    20.         android:calendarViewShown="true"  
    21.         android:spinnersShown="true"/>  
    22.   
    23. </LinearLayout>  

    效果图 :

     

    .

    作者 :万境绝尘 

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

  • 相关阅读:
    神仙题1.0
    一些小技巧(持续更新。。)
    模板(持续更新中。。)
    「CTS2019 | CTSC2019」氪金手游(容斥+概率计数)
    Emacs配置
    AGC034E Complete Compres(dp)
    「清华集训 2017」榕树之心(换根dp)
    [NOI2018]冒泡排序 (卡特兰数)
    「清华集训 2017」小 Y 和二叉树 (贪心)
    「雅礼集训 2018 Day1」图 (dp套dp)
  • 原文地址:https://www.cnblogs.com/lucky-star-star/p/3831148.html
Copyright © 2011-2022 走看看