}
注意: 由于通过DatePicker对象获取到的月份是0~11月,而不是1~12月,所以需要将获取的结果加1,才能代表真正的月份。
运行本实例,将显示如图3.28所示的运行结果。
图3.28 应用日期、时间拾取器选择日期和时间
3.3.8 计时器
计时器(Chronometer)组件可显示从某个起始时间开始,一共过去了多长时间的文本。由于该组件继承自TextView,所以它以文本的形式显示内容。使用该组件也比较简单,通常只需要使用以下5个方法。
[√]setBase():用于设置计时器的起始时间。
[√]setFormat():用于设置显示时间的格式。
[√]start():用于指定开始计时。
[√]stop():用于指定停止计时。
[√]setOnChronometerTickListener():用于为计时器绑定事件监听器,当计时器改变时触发该监听器。
下面通过一个具体的实例来说明计时器的应用。
例3.22 在Eclipse中创建Android项目,名称为3.22,在屏幕中添加一个“已用时间”计时器。(实例位置:光盘\TM\sl\3\3.22)
(1)在新建项目的布局文件main.xml中,添加id属性为chronometer1的计时器组件,关键代码如下:
android:text="Chronometer"
android:id="@+id/chronometer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
(2)在主活动MainActivity的onCreate()方法中获取计时器组件,并设置起始时间和显示时间的格式、开启计时器,以及为其添加监听器,具体代码如下:
final Chronometer ch = (Chronometer) findViewById(R.id.chronometer1); //获取计时器组件
ch.setBase(SystemClock.elapsedRealtime()); //设置起始时间
ch.setFormat("已用时间:%s"); //设置显示时间的格式
ch.start(); //开启计时器
//添加监听器
ch.setOnChronometerTickListener(new OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if (SystemClock.elapsedRealtime() - ch.getBase() >= 10000) {
ch.stop(); //停止计时器
}
}
});
运行本实例,将显示如图3.29所示的运行结果。
图3.29 显示计时器
3.3.9 范例1:实现跟踪鼠标单击状态的图片按钮
例3.23 在Eclipse中创建Android项目,名称为3.23,实现跟踪鼠标单击状态的图片按钮。(实例位置:光盘\TM\sl\3\3.23)
(1)修改新建项目的res\layout目录下的布局文件main.xml,为默认添加的垂直线性布局添加背景,并设置该布局中的内容居中显示,然后添加一个ImageButton图片按钮,并将其设置为透明背景。修改后的代码如下:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:gravity="center"
>
android:id="@+id/start"
android:background="#0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
说明: 在默认情况下,为图片按钮设置android:src后,该图片按钮将带一个灰色的背景,不是很美观,为了去除灰色的背景,可以将其背景设置为透明(上面代码中将背景设置为#0000,即黑色透明),不过这样该图片按钮将不再有鼠标单击效果。
(2)编写Drawable资源对应的XML文件button_state.xml,用于设置当鼠标按下时显示的图片和鼠标没有按下时显示的图片,具体代码如下:
xmlns:android="http://schemas.android/apk/res/android">
(3)为main.xml布局文件中的图片按钮设置android:src属性,其属性值是在步骤(2)中编写的Drawable资源,关键代码如下:
android:src="@drawable/button_state"
(4)在主活动的onCreate()方法中,获取布局文件中添加的图片按钮,并为其添加鼠标单击事件监听器,具体代码如下:
ImageButton imageButton=(ImageButton)findViewById(R.id.start); //获取“进入”按钮
//为按钮添加单击事件监听器
imageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "进入游戏...", Toast.LENGTH_SHORT).show(); //显示消息提示框
}
});
运行本实例,将显示如图3.30所示的运行结果,单击“进入”按钮,当单击鼠标时,按钮将变成橙色背景。