<?xml version="1.0" encoding="utf-8"?> <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:id="@+id/ll_xsqg" android:paddingTop="8dp" android:paddingBottom="8dp" android:paddingLeft="16dp" android:orientation="horizontal" tools:context="com.example.daojishi.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14sp" /> <TextView android:id="@+id/tv_hour" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:paddingTop="3dp" android:paddingBottom="3dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:background="#000000" android:textColor="@android:color/white" android:textSize="12sp" android:text="02"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:textStyle="bold" android:textColor="@android:color/black" android:text=":"/> <TextView android:background="#000000" android:id="@+id/tv_minute" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:paddingTop="3dp" android:paddingBottom="3dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:textColor="@android:color/white" android:textSize="12sp" android:text="15"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:textStyle="bold" android:textColor="@android:color/black" android:text=":"/> <TextView android:background="#000000" android:id="@+id/tv_second" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:paddingTop="3dp" android:paddingBottom="3dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:textColor="@android:color/white" android:textSize="12sp" android:text="36"/> </LinearLayout>
package com.example.daojishi; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { @BindView(R.id.tv_hour) TextView tvHour; @BindView(R.id.tv_minute) TextView tvMinute; @BindView(R.id.tv_second) TextView tvSecond; private long mHour = 02; private long mMin = 15; private long mSecond = 36; private boolean isRun = true; private Handler timeHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==1) { computeTime(); if (mHour<10){ tvHour.setText("0"+mHour+""); }else { tvHour.setText("0"+mHour+""); } if (mMin<10){ tvMinute.setText("0"+mMin+""); }else { tvMinute.setText(mMin+""); } if (mSecond<10){ tvSecond.setText("0"+mSecond+""); }else { tvSecond.setText(mSecond+""); } } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); startRun(); } /** * 开启倒计时 */ private void startRun() { new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while (isRun) { try { Thread.sleep(1000); // sleep 1000ms Message message = Message.obtain(); message.what = 1; timeHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } } } }).start(); } /** * 倒计时计算 */ private void computeTime() { mSecond--; if (mSecond < 0) { mMin--; mSecond = 59; if (mMin < 0) { mMin = 59; mHour--; } } } }