【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

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Android预约开发源码是用来实现预约功能的开发源码。预约功能是指用户可以在应用程序中预先安排和安排活动、服务或资源的功能。 开发预约功能的源码可以包括以下几个方面的内容: 1. 用户界面设计:通过Android提供的UI组件,如按钮、文本框、日期选择器等,设计出用户友好的预约界面。用户可以在界面中选择所需的服务、活动或资源,并填写相关的信息,如时间、地点、备注等。 2. 数据管理:通过数据库技术,如SQLite,来存储和管理预约相关的数据。开发源码需要包括数据库表的设计和创建,以及对数据的增删改查等操作的实现。 3. 预约逻辑:通过编程语言如Java,实现预约功能的逻辑。这包括对用户选择的服务、时间等进行验证和处理,如判断是否有冲突预约、发送预约通知等。 4. 通信和互联网技术:如果预约功能需要与服务器进行交互,开发源码还需要包括与服务器通信的相关代码,如使用HTTP协议发送和接收预约信息、处理服务器返回的结果等。 5. 错误处理和异常情况处理:开发源码应当考虑到可能出现的错误和异常情况,如网络连接失败、数据库操作错误等,并给出相应的处理方法和提示。 总而言之,Android预约开发源码是一套实现预约功能的代码集合,它可以帮助开发者快速实现预约功能,并可根据具体需求进行定制和扩展。 ### 回答2: Android预约开发源码属于移动应用开发的一个重要方向。这类源码通常用于构建具有预约功能的Android应用程序,比如用于预约餐厅、美容、医疗等服务的应用。下面将简要介绍一下关于Android预约开发源码的一些特点和使用方法。 首先,Android预约开发源码提供了开发者所需的基础框架和功能模块,包括用户注册登录、预约数据管理、日历选择、通知提醒等等。这些源码可以帮助开发者快速搭建起一个具有预约功能的Android应用,并且可以根据实际需求进行个性化定制。 其次,Android预约开发源码支持与后端服务器进行数据交互,实现用户与服务提供者之间的实时沟通和信息交流。通过与服务器的配合,用户可以方便地浏览、选择和预约各种可用服务,并且可以随时查看和修改自己的预约信息。 另外,Android预约开发源码还提供了丰富的界面设计和交互效果,帮助开发者构建出美观、简洁且易于使用的应用程序。同时,源码中也包含了一些常见的UI组件和样式,可以大大减少开发者的开发工作量,提高开发效率。 最后,对于开发者而言,使用Android预约开发源码进行开发不仅可以大大节省开发成本和时间,还可以减少出错和重复劳动的可能性。通过学习和理解源码的架构和思路,开发者也能够提升自己的开发能力,更好地应对未来的项目需求。 总而言之,Android预约开发源码是一种提供了基础框架、功能模块及交互设计的开发工具,可以帮助开发者快速搭建具备预约功能的Android应用,并且提供了一些便捷的操作和定制的方法。通过使用该源码,开发者可以更高效、更专注地开发出满足用户需求的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值