万书网 > 文学作品 > Android从入门到精通 > 第32页

第32页





}

注意:  由于通过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所示的运行结果,单击“进入”按钮,当单击鼠标时,按钮将变成橙色背景。