- android
- android.accessibilityservice
- android.accounts
- android.content
- android.database.sqlite
- android.graphics
- android.location
- android.media
- android.net
- android.os
- android.text
- android.view
- android.view.inputmethod
- android.widget
- AbsListView
- AbsoluteLayout
- AbsSeekBar
- AbsSpinner
- AdapterView
- AnalogClock
- BaseAdapter
- BaseExpandableListAdapter
- Button
- CheckBox
- CheckedTextView
- Checkable
- Chronometer
- CompoundButton
- CursorAdapter
- CursorTreeAdapter
- DatePicker
- DialerFilter
- DigitalClock
- EditText
- Filter
- Filter.FilterListener
- Filter.FilterResults
- ExpandableListAdapter
- Filterable
- Gallery
- Gallery.LayoutParams
- GridView
- GridLayout
- RadioGroup
- ImageView
- HorizontalScrollView
- ImageButton
- ImageSwitcher
- FilterQueryProvider
- ListAdapter
- ListView
- MediaController
- QuickContactBadge
- RadioButton
- RatingBar
- RelativeLayout
- RemoteViews
- ResourceCursorAdapter
- ResourceCursorTreeAdapter
- Scroller
- ScrollView
- SearchView
- SeekBar
- SeekBar.OnSeekBarChangeListener
- SimpleAdapter
- SimpleCursorAdapter
- SimpleCursorTreeAdapter
- SimpleExpandableListAdapter
- SlidingDrawer
- Spinner
- SpinnerAdapter
- WrapperListAdapter
- TabHost
- TabHost.TabSpec
- TextView
- TimePicker
- Toast
- TableLayout
- TableRow
- TableRow.LayoutParams
- TabWidget
- TextSwitcher
- ToggleButton
- TwoLineListItem
- VideoView
- ViewAnimator
- ViewFlipper
- ViewSwitcher
- ZoomButtonsController
- ZoomButton
- ZoomControls
- dalvik.system
Chronometer
Chronometer
农民伯伯
版本:Android 2.2 r1
public class Chronometer extends TextView
java.lang.Object
android.widget.Chronometer
概述
类实现了一个简单的计时器。
你可以通过 elapsedRealtime()
来
给它一个基准时间,并从该时间开始计数。如果你不给它基准时间,它将使用你调用 start()
时的时间。默认它将显示当前"MM:SS"或 "H:MM:SS"格式的时间,或者你能通过 setFormat(String)
设置一个任意字符串来格式化显示计时器显示的时间。
XML属性
属性名称 | 描述 |
android:format | 格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个“%s”为当前"MM:SS"或 "H:MM:SS"格式的时间显示。如果不指定,计时器将简单的显示"MM:SS" or "H:MM:SS"格式的时间。(译者注:如: “This is a Chronometer %s” ) |
构造函数
public Chronometer (Context context)
初始化计时器对象。设置当前时间为基准时间。(译者注:通过程序动态创建计时器对象)
public Chronometer (Context context, AttributeSet attrs)
初始化标准视图布局信息。设置当前时间为基准时间。(译者注:指通过 XML 来指定一个计时器)
public Chronometer (Context context, AttributeSet attrs, int defStyle)
初始化标准视图布局信息和风格。设置当前时间为基准时间。
公共方法
public long getBase ()
返回先前由 setBase(long) 设置的基准时间。
public String getFormat ()
返回先前由 setFormat(String) 设置的格式化字符串。
public Chronometer.OnChronometerTickListener getOnChronometerTickListener ()
返回值
返回这个监听器(可能为空)是用于监听计时器变化的事件。
public void setBase (long base)
设置基准时间(译者注:基准时间为真正意义上开始计时的时间,而不是调用 start 时时间,比如调用本函数并设置参数 base 为 SystemClock.elapsedRealtime() 即表示从当前时间开始重新计时)。
参数
base 使用 elapsedRealtime() 为基准时间
public void setFormat (String format)
设置用于显示的格式化字符串。格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个“%s”为当前"MM:SS"或 "H:MM:SS"格式的时间显示。如果这个格式化字符串为空,或者你从未调用过 setFormat() 方法,计时器将简单的显示"MM:SS" or "H:MM:SS"格式的时间。(译者注:如: "This is a Chronometer %s"
)
参数
format 格式化字符串
public void setOnChronometerTickListener (Chronometer.OnChronometerTickListener listener)
设置计时器变化时调用的监听事件。
参数
listener The listener.
public void start ()
开始计时。不会影响到由 setBase(long) 设置的基准时间,仅显示视图。即使部件不显示,计时器也会通过定时处理消息来工作。为了确保不发生资源泄漏,用户应确保每个 start() 方法都有对应的 stop() 调用(译者注:有一个 start 就有一个 stop)。(译者注:start 只是显示计时,实际上计时是从基准时间开始的,所以通过 stop 停止计时若干秒后再 start 时,显示的计时会突然跳到当前显示的计时后的若干秒后继续计时,见此 帖子 。)
public void stop ()
停止计时。不会影响到由 setBase(long) 设置的基准时间,仅显示视图。这将停止消息发送,有效地释放计时器运行时 start() 占用的资源。
受保护方法
protected void onDetachedFromWindow ()
视图从窗体上移除时调用,同时窗体表面不再显示视图。
protected void onWindowVisibilityChanged (int visibility)
当窗体中视图的可视性(GONE, INVISIBLE, VISIBLE)发生改变时调用。注意它将告诉你你的窗口是否可以被窗口管理器识别,这并不能说明窗口是否被屏幕上的其他窗口遮挡,即使它本身是可见的。
参数
visibility 窗口新的可见性
补充
文章链接
android 中的时间服务–Chronometer 计时器服务
示例代码
Java 文件
public class ChronometerDemo extends Activity {
private Chronometer cher1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. chronometer );
cher1 = (Chronometer) findViewById(R.id. cher1 );
cher1.setFormat("计时:%s");
}
/**
* 开始计时
* @param view
*/
public void onStart(View view) {
cher1.start();
}
/**
* 停止计时
* @param view
*/
public void onStop(View view) {
cher1.stop();
}
/**
* 重置
* @param view
*/
public void onReset(View view) {
cher1.setBase(SystemClock. elapsedRealtime ());
}
}
XML 文件
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:orientation= "vertical"
android:layout_width= "wrap_content" android:layout_height= "wrap_content" >
<Chronometer android:id= "@+id/cher1" android:layout_width= "wrap_content"
android:layout_height= "wrap_content" ></Chronometer>
<LinearLayout android:layout_width= "wrap_content" android:layout_height= "wrap_content" >
<Button android:onClick= "onStart" android:text= " 开始计时 " android:layout_width= "wrap_content" android:layout_height= "wrap_content" ></Button>
<Button android:onClick= "onStop" android:text= " 停止计时 " android:layout_width= "wrap_content" android:layout_height= "wrap_content" ></Button>
<Button android:onClick= "onReset" android:text= " 重置 " android:layout_width= "wrap_content" android:layout_height= "wrap_content" ></Button>
</LinearLayout>
</LinearLayout>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论