国土局网站建设经验,公司网站建设调研背景,网站建设设计logo,番禺网站制作 优帮云目录
Android TextClock 文本时钟控件
TextClock 控件主要属性和方法
简单的 TextClock
参考文档
Android AnalogClock 控件
AnalogClock 属性
Android Chronometer 计时器
Chronometer 属性
Chronometer 主要方法
范例#xff1a; 完整的计时器
范例#xff1a; …目录
Android TextClock 文本时钟控件
TextClock 控件主要属性和方法
简单的 TextClock
参考文档
Android AnalogClock 控件
AnalogClock 属性
Android Chronometer 计时器
Chronometer 属性
Chronometer 主要方法
范例 完整的计时器
范例 倒计时 Android TextClock 文本时钟控件
Android TextClock 是一个用于在 Android 应用中显示当前日期和时间的控件。它在 Android 4.2 (API 17) 后推出并提供了两种不同的格式24 小时制和 12 小时制。
可以使用 is24HourModeEnabled() 方法来确定系统当前是否在使用 24 小时制。在 24 小时制模式下系统将按照以下方式进行判断
首先尝试通过 getFormat24Hour() 方法获取时间格式。如果无法获取到时间格式则尝试通过 getFormat12Hour() 方法获取时间格式。如果上述两种方式都无法获取到时间格式则使用默认格式。
TextClock 控件主要属性和方法
下面是 TextClock 控件的主要属性和对应的方法
属性
android:format12Hour设置 12 小时制的格式。android:format24Hour设置 24 小时制的格式。android:timeZone设置时区。
方法
setFormat12Hour(CharSequence format)设置 12 小时制的时间格式。参数 format 是一个 CharSequence 对象用于指定要显示的时间格式。setFormat24Hour(CharSequence format)设置 24 小时制的时间格式。参数 format 是一个 CharSequence 对象用于指定要显示的时间格式。setTimeZone(String timeZone)设置 TextClock 控件的时区。参数 timeZone 是一个字符串表示要设置的时区。
简单的 TextClock
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentxmlns:apphttp://schemas.android.com/apk/res-autoandroid:orientationverticalandroid:gravitycenterTextClockandroid:idid/textClockandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:textSize24spandroid:format24HourHH:mm:ssandroid:format12Hourhh:mm:ss aandroid:timeZoneGMT08:00/
/LinearLayout参考文档
Android android.widget.TextClock
Android AnalogClock 控件
Android AnalogClock 控件是一个模拟时钟控件用于在应用中显示模拟时钟的外观。但是自 API 23 起Android 官方已经将 AnalogClock 控件标记为废弃并建议开发者使用其他替代方案比如使用自定义绘制的方式或者使用第三方库来实现时钟功能。
AnalogClock 属性
在 Android 中AnalogClock 控件是一个简单的模拟时钟它显示了当前时间的模拟时钟表盘。尽管从 API 23 开始已经被废弃但仍然可以使用。下面是 AnalogClock 控件的属性说明
android:dial用于设置模拟时钟的背景图片。您可以指定一个 drawable 资源作为时钟的表盘背景。这个属性允许您自定义时钟表盘的外观。android:hand_hour用于设置模拟时钟的时针图片。您可以指定一个 drawable 资源作为时钟的时针。这个属性允许您自定义时钟的时针外观。android:hand_minute用于设置模拟时钟的分针图片。您可以指定一个 drawable 资源作为时钟的分针。这个属性允许您自定义时钟的分针外观。
Android Chronometer 计时器
Android 中的 Chronometer 控件可以用于制作简单的计时器或倒计时功能。它可以显示经过的时间并且可以方便地开始、停止和重置计时。
默认情况下Chronometer 控件会以 MM:SS 或 H:MM:SS 格式显示当前时间我们也可以使用 setFormat(String) 方法设置为其它的格式
Chronometer 控件可以使用 elapsedRealtime() 方法设置起始时间如果未设置起始时间就会在调用 start() 方法时使用当前时间作为起始时间
Chronometer 控件也可以用来开发一个倒计时可以使用 setCountDown(boolean) 方法来设置剩余时间
Chronometer 属性
android:countDown一个布尔值用于设置 Chronometer 是否为倒计时模式。如果设置为 true则 Chronometer 将显示倒计时的时间如果设置为 false默认值则显示计时器的时间。android:format一个字符串值用于设置 Chronometer 显示的时间格式。Android 将使用 %s 来代替显示时间的部分。您可以指定自己想要的时间格式比如 MM:SS分:秒或者 H:MM:SS小时:分:秒。
Chronometer 主要方法
isCountDown()这个方法用于设置 Chronometer 是否为倒计时模式。如果返回 true则表示 Chronometer 是倒计时模式否则表示为计时模式。start()该方法用于启动 Chronometer开始计时或倒计时。一旦调用该方法Chronometer 将开始更新显示时间。stop()该方法用于停止 Chronometer。一旦调用该方法Chronometer 将停止更新显示时间当前的时间将保持不变。
范例 完整的计时器
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentxmlns:apphttp://schemas.android.com/apk/res-autoandroid:orientationverticalandroid:gravitycenterChronometerandroid:idid/chronometerandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:textColor#ff0000android:textSize60dip /LinearLayoutandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_margin10dipandroid:orientationhorizontalButtonandroid:idid/btnStartandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_weight1android:text开始记时 /Buttonandroid:idid/btnStopandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_weight1android:text停止记时 /Buttonandroid:idid/btnResetandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_weight1android:text重置 /Buttonandroid:idid/btn_formatandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text格式化 //LinearLayout
/LinearLayoutpackage com.example.myapplication;import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private Chronometer chronometer;private Button startButton, stopButton, resetButton, formatButton;private boolean isRunning false;private boolean isFormatChanged false;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);chronometer findViewById(R.id.chronometer);startButton findViewById(R.id.btnStart);stopButton findViewById(R.id.btnStop);resetButton findViewById(R.id.btnReset);formatButton findViewById(R.id.btn_format);startButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {startChronometer();}});stopButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {stopChronometer();}});resetButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {resetChronometer();}});formatButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {changeChronometerFormat();}});}private void startChronometer() {if (!isRunning) {chronometer.setBase(SystemClock.elapsedRealtime());chronometer.start();isRunning true;}}private void stopChronometer() {if (isRunning) {chronometer.stop();isRunning false;}}private void resetChronometer() {chronometer.stop();chronometer.setBase(SystemClock.elapsedRealtime());isRunning false;}private void changeChronometerFormat() {if (!isFormatChanged) {// 第一次点击更改格式为 时间%schronometer.setFormat(时间%s);isFormatChanged true;} else {// 再次点击恢复到原始格式chronometer.setFormat(%s);isFormatChanged false;}}
}范例 倒计时
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:gravitycenterChronometerandroid:idid/chronometerandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:countDowntrueandroid:textColor#ff0000android:textSize60dip /LinearLayoutandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_margin10dipandroid:orientationhorizontalButtonandroid:idid/btnStartandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_weight1android:text开始 /Buttonandroid:idid/btnResetandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_weight1android:text重置 //LinearLayout/LinearLayoutpackage com.example.myapplication;import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;public class MainActivity extends Activity {private Chronometer chronometer;private Button btnStart;private Button btnReset;private CountDownTimer countDownTimer;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);chronometer findViewById(R.id.chronometer);btnStart findViewById(R.id.btnStart);btnReset findViewById(R.id.btnReset);btnStart.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {startCountdown();}});btnReset.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {resetChronometer();}});}private void startCountdown() {countDownTimer new CountDownTimer(11000, 1000) {Overridepublic void onTick(long millisUntilFinished) {long secondsRemaining millisUntilFinished / 1000;chronometer.setText(String.valueOf(secondsRemaining));}Overridepublic void onFinish() {chronometer.setText(0);showTimeUpDialog();}}.start();}private void resetChronometer() {if (countDownTimer ! null) {countDownTimer.cancel();}chronometer.setText();}private void showTimeUpDialog() {AlertDialog.Builder builder new AlertDialog.Builder(this);builder.setMessage(时间到了).setPositiveButton(确定, new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int id) {// 点击确定按钮后的操作}});builder.create().show();}
}