秒表功能是很多APP中常见的实用工具,用户可以在需要的时候快速记录时间,本文将介绍如何在Android平台上实现一个简单的秒表功能,包括计时器的设计、显示和停止等功能。
设计计时器
1、创建一个新的Android项目,选择一个合适的模板,如Empty Activity。
2、在activity_main.xml布局文件中添加一个TextView用于显示时间,一个Button用于开始和停止计时。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" /> <Button android:id="@+id/btn_start_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始" /> </LinearLayout>
3、在MainActivity.java文件中,定义两个变量分别表示开始时间和结束时间,以及一个布尔值表示计时器是否正在运行,为Button设置点击事件监听器。
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.concurrent.TimeUnit; public class MainActivity extends AppCompatActivity { private long startTime; // 开始时间 private long endTime; // 结束时间 private boolean isRunning = false; // 计时器是否正在运行 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } Button btnStartStop = findViewById(R.id.btn_start_stop); TextView tvTime = findViewById(R.id.tv_time); btnStartStop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isRunning) { stopTimer(); } else { startTimer(); } } }); }
4、实现计时器的开始和停止功能,在startTimer()方法中,当按钮被点击时,记录当前时间作为开始时间,并更新TextView的文本,在stopTimer()方法中,当按钮被点击时,记录当前时间作为结束时间,并计算经过的时间,然后更新TextView的文本,将isRunning变量设置为false。
private void startTimer() { isRunning = true; initTime(); // 初始化时间变量(如果需要的话) } private void stopTimer() { isRunning = false; initTime(); // 初始化时间变量(如果需要的话) int elapsedTime = (int) (endTime startTime); // 经过的时间(毫秒) int seconds = elapsedTime % 60; // 总秒数(取余数) int minutes = (elapsedTime % (60 * 60)) / (60); // 总分钟数(取整除法) int hours = (elapsedTime % (60 * 60 * 24)) / (60 * 60); // 总小时数(取整除法) initTime(); // 如果需要的话,重新初始化时间变量(例如更新时间格式等) initTime(); // 如果需要的话,重新初始化时间变量(例如更新时间格式等) initTime(); // 如果需要的话,重新初始化时间变量(例如更新时间格式等) initTime(); // 如果需要的话,重新初始化时间变量(例如更新时间格式等) initTime(); // 如果需要的话,重新初始化时间变量(例如更新时间格式等)
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/147636.html