上一期学习了AnalogClock、DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chronometer。
一、CalendarView
日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触 摸来滚动日历。如果希望监控该组件的日期改变,则可调用CalendarView的 setOnDateChangeListener()方法为此组件的点击事件添加事件监听器。
用CalendarView时可指定如下表所示的常见XML属性及相关方法。
接下来通过一个简单的示例程序来学习CalendarView的使用。
继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建calendarview_layout.xml文件,在其中填充如下代码片段:
[代码]xml代码:
?
01 02 03 04 05 06 07 08 09 10 11 | <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:firstDayOfWeek="3"
android:shownWeekCount="4" />
</RelativeLayout>
|
修改MainActivity里面的代码,加载上述定义的布局文件,然后运行程序,可以看到下图所示界面效果。
二、Chronometer
Chronometer是一个简单的定时器,可以通过setBase()来给它一个基准时间,并从该时间开始计数;如果不给基准时间,将使用调用start()方法时的时间。默认将显示当前"MM:SS"或 "H:MM:SS"格式的时间,当然也可以自定义字符串来格式化显示。
Chronometer的一个比较重要的XML属性如下:
· android:format:设置时间的格式如: hh:mm:ss。
Chronometer的一些常用方法如下:
· setBase(long base):设置倒计时定时器。
· setFormat(String format):设置显示时间的格式。
· start():开始计时。
· stop():停止计时。
在使用Chronometer时,如果希望监控该组件的时间,则可调用Chronometer的 setOnChronometerTickListener()方法为此组件的点击事件添加事件监听器。
接下来通过一个简单的示例程序来学习Chronometer的使用。
仍然使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建chronnmeter_layout.xml文件,在其中填充如下代码片段:
[代码]xml代码:
?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?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:gravity="center_horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onStart"
android:text=" 开始计时" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onStop"
android:text=" 停止计时" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onReset"
android:text=" 重置" />
</LinearLayout>
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"/>
</LinearLayout>
|
接下来在Activity中完成Chronometer格式化,并响应用户的操作。新建ChronometerActivity.java文件,加载上面新建的布局文件,初始化DatePicker并获取用户的选择,具体代码如下:
[代码]java代码:
?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package com.jinyu.cqkxzsxy.android.advancedviewsample;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Chronometer;
/**
* @ 创建者 鑫鱻
* @ 描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert
*/
public class ChronometerActivity extends AppCompatActivity {
private Chronometer mChronometer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chronnmeter_layout);
mChronometer = (Chronometer) findViewById(R.id.chronometer);
//setFormat 设置用于显示的格式化字符串。
// 替换字符串中第一个“%s”为当前"MM:SS"或 "H:MM:SS"格式的时间显示。
mChronometer.setFormat(" 计时:%s");
}
// 开始计时
public void onStart(View view) {
mChronometer.start();
}
// 停止计时
public void onStop(View view) {
mChronometer.stop();
}
// 重置
public void onReset(View view) {
//setBase 设置基准时间
// 设置参数base为SystemClock.elapsedRealtime()即表示从当前时间开始重新计时)。
mChronometer.setBase(SystemClock.elapsedRealtime());
}
}
|
运行程序,可以看到所示界面效果。
至此,关于时间和日期类的组件基本学得差不多了,你都掌握得怎么样呢?
今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!
原文链接:http://www.apkbus.com/blog-205190-72664.html