转载时请记得标明源地址:https://my.oschina.net/lijindou/blog/798710

本人博客地址:  http://my.oschina.net/lijindou/blog

这篇博客主要是用Chronometer 实现了倒计时,如果又不想用这种方式实现的,我的另一篇博客中也有倒计时实现:

https://my.oschina.net/lijindou/blog/714657 

大家可以打开这个连接看看

在这篇博客中的倒计时很简单的,源码已经贴出来了,大家可看看就明白了,然后在下面有两个方法,

1.将时分秒转为秒数

2.将秒数转为时分秒

大家也看看吧!

 源码地址:http://download.csdn.net/detail/qq_33144317/9699730

MainActivity.java

import android.os.Bundle;import android.os.SystemClock;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Chronometer;import android.widget.TextView;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private static final String TAG = "MainActivity";    private Chronometer timer;    private Chronometer timer1;    private Button but;    private Button but1;    private Button but2;    private Button but3;    private TextView tv0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initViews();        initData();        addEvent();    }    private void initViews() {        timer = (Chronometer) findViewById(R.id.timer);        timer1 = (Chronometer) findViewById(R.id.timer1);        but = (Button) findViewById(R.id.but);        but1 = (Button) findViewById(R.id.but1);        but2 = (Button) findViewById(R.id.but2);        but3 = (Button) findViewById(R.id.but3);        tv0 = (TextView) findViewById(R.id.tv0);    }    private void initData() {    }    private void addEvent() {        but.setOnClickListener(this);        but1.setOnClickListener(this);        but2.setOnClickListener(this);        but3.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.but:                but.setText("点击清零,从新开始 ");                timer.setBase(SystemClock.elapsedRealtime());//计时器清零                timer.start();                break;            case R.id.but1:                but1.setText("点击清零,从新开始");                timer1.setBase(SystemClock.elapsedRealtime());//计时器清零                int hour = (int) ((SystemClock.elapsedRealtime() - timer1.getBase()) / 1000 / 60);                timer1.setFormat("0" + String.valueOf(hour) + ":%s");                timer1.start();                break;            case R.id.but2:                if (but2.getText().toString().equals("点击暂停")) {                    timer1.stop();//计时停止但是不清零                    but2.setText("点击开始");                } else {                    timer1.start();//计时停止但是不清零                    but2.setText("点击暂停");                }                break;            case R.id.but3://                Toast.makeText(this, + "", Toast.LENGTH_SHORT).show();                tv0.setText("当前时间" + timer1.getText().toString() + "\n" +                        "当前总秒数: " + formatTurnSecond(timer1.getText().toString()) + "\n" +                        "当前总毫秒数: " + formatTurnSecond(timer1.getText().toString()) * 1000 + "\n" +                        "当前时间: " + change((int) formatTurnSecond(timer1.getText().toString()))                );                break;        }    }    /*    * 将时分秒转为秒数    * */    public long formatTurnSecond(String time) {        String s = time;        int index1 = s.indexOf(":");        int index2 = s.indexOf(":", index1 + 1);        int hh = Integer.parseInt(s.substring(0, index1));        int mi = Integer.parseInt(s.substring(index1 + 1, index2));        int ss = Integer.parseInt(s.substring(index2 + 1));        Log.e(TAG, "formatTurnSecond: 时间== " + hh * 60 * 60 + mi * 60 + ss);        return hh * 60 * 60 + mi * 60 + ss;    }    /*        * 将秒数转为时分秒        * */    public String change(int second) {        int h = 0;        int d = 0;        int s = 0;        int temp = second % 3600;        if (second > 3600) {            h = second / 3600;            if (temp != 0) {                if (temp > 60) {                    d = temp / 60;                    if (temp % 60 != 0) {                        s = temp % 60;                    }                } else {                    s = temp;                }            }        } else {            d = second / 60;            if (second % 60 != 0) {                s = second % 60;            }        }        return h + ":" + d + ":" + s + "";    }}

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.time.MainActivity">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">        <Chronometer            android:id="@+id/timer"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:format="%s"            android:gravity="center" />        <Button            android:id="@+id/but"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="点击开始" />        <Chronometer            android:id="@+id/timer1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:format="00:00:00"            android:gravity="center" />        <Button            android:id="@+id/but1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="点击开始" />        <Button            android:id="@+id/but2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="点击暂停" />        <Button            android:id="@+id/but3"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="点击获取时间" />        <TextView            android:id="@+id/tv0"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    LinearLayout>ScrollView>

更多相关文章

  1. Android(安卓)4.0 +MyEclipse 9 整合开发环境搭建
  2. MAC操作系统上搭建Android开发平台环境
  3. 捕获TextView超链接
  4. SearchView使用
  5. Android中使用OnClickListener接口实现按钮点击的低级失误
  6. Android(安卓)Studio之初体验 ---- 很好很强大
  7. Android(安卓)连续多次点击事件的实现
  8. Hierarchy Viewer的替代品Layout Inspector
  9. android 退出应用方法一:点击两次退出应用

随机推荐

  1. 睡眠唤醒机制简介
  2. 《Android和PHP最佳实践》官方站
  3. Android: 打印Bundle内容
  4. Android崩溃后重启
  5. onAttachToWindow() 调用
  6. android实现电话状态监控
  7. Android(安卓)Bundle类
  8. Android(安卓)Gradle Study
  9. Android(安卓)AsyncTask 源码分析详解
  10. android踩坑日记