Android 实现一个计时器
来源:互联网 发布:联合国国际贸易数据库 编辑:程序博客网 时间:2024/06/09 19:17
最近,在做一个Android项目,需要用到一个计时器。特此,拿来和大家分享一下。
首先,看一下实现效果图。
实现思路
主要利用Handler
中的postDelayed (Runnable r, long delayMillis)
函数每隔1秒钟更新一次UI。
具体实现如下。
布局文件
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.caltimer.MainActivity" > <TextView android:id="@+id/tv_timer" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:padding="20dp" android:gravity="center" android:text="00:00:00" android:textSize="50sp"/> <ImageView android:id="@+id/img_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:layout_alignParentBottom="true" android:layout_centerInParent="true" android:src="@drawable/btn_pause" /></RelativeLayout>
核心代码
MainActivity.java
package com.example.caltimer;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends Activity implements OnClickListener{ private TextView tv_timer; private ImageView img_start; private boolean isStopCount = false; private boolean isPause = true; private Handler mHandler = new Handler(); private long timer = 0; private String timeStr = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViews(); countTimer(); } private void findViews() { tv_timer = (TextView) findViewById(R.id.tv_timer); img_start = (ImageView) findViewById(R.id.img_start); img_start.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.img_start: if(!isPause){ isPause = true; isStopCount = false; img_start.setImageResource(R.drawable.btn_pause); } else{ isPause = false; isStopCount = true; img_start.setImageResource(R.drawable.btn_start); } break; default: break; } } private Runnable TimerRunnable = new Runnable() { @Override public void run() { if(!isStopCount){ timer += 1000; timeStr = TimeUtil.getFormatTime(timer); tv_timer.setText(timeStr); } countTimer(); } }; private void countTimer(){ mHandler.postDelayed(TimerRunnable, 1000); } @Override protected void onDestroy() { super.onDestroy(); mHandler.removeCallbacks(TimerRunnable); }}
源代码地址
1 0
- Android 实现一个计时器
- 一个计时器的实现
- 实现一个方法计时器
- 实现一个打点计时器
- android 做一个计时器
- 【Android】使用Chronometer组件实现一个简单的计时器
- Android 利用SurfaceView实现一个简单的计时器
- Android 计时器的实现
- Android 实现计时器功能
- android计时器实现
- 简单实现Android计时器
- 实现一个简单的计时器
- Android使用Chronometer实现计时器
- Android 开发 计时器的实现
- Android简单计时器的实现
- Android简单的计时器实现
- Android 计时器的简单实现
- 实现一个很简单的计时器类
- APP手机应用(android和ios)接口调用 传输验证可用 shiro 的 MD5、SHA 等加密
- AVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- String类用法详解
- Hbase建表,查询(带分页)
- Android中Preference的使用以及监听事件分析
- Android 实现一个计时器
- hibernate碎碎念
- Android内存泄漏简介
- fuelux tree中datasource格式
- SwipeRefreshLayout和RecyclerView使用的小问题
- cuppy的用户pp:1234无法登陆的原因
- hdoj 4825 Xor Sum 【字典树】
- 教育开发课程-IT培训
- JSP中,防止 css js img 等文件的缓存的方法