【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 {@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 屬性, 設置沒有選中的月份日期顏色--><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;@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
總結
以上是生活随笔為你收集整理的【Android 应用开发】Android - 时间 日期相关组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Androi
- 下一篇: 【Android 应用开发】Androi