1. 程式人生 > >仿京東淘寶的秒殺倒計時實現

仿京東淘寶的秒殺倒計時實現


//菜鳥一枚請多指教


//這個是佈局檔案
<LinearLayout
android:id="@+id/ll_xsqg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingLeft="16dp">

    <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14sp" android:text="熱門活動"/> <TextView android:text="時" android:textSize="25sp" android:textColor="@color/colorAccent" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <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:textColor="@android:color/white" android:textSize="12sp"
android:background="#afa" 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:text="分" android:textSize="25sp" android:textColor="@color/colorAccent" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView 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:background="#afa" 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:text="秒" android:textSize="25sp" android:textColor="@color/colorAccent" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView 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:background="#afa" android:paddingRight="5dp" android:textColor="@android:color/white" android:textSize="12sp" android:text="36"/> </LinearLayout>

//然後是在Activity或者是Fragment裡書寫的程式碼
public class MainActivity extends Activity {@Bind(R.id.tv_hour)TextView tvHour;@Bind(R.id.tv_minute)TextView tvMinute;@Bind(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() {@Overridepublic 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+"");}}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_home);ButterKnife.bind(this);startRun();}/*** 開啟倒計時*/private void startRun() {new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile (isRun) {try {Thread.sleep(1000); // sleep 1000msMessage 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--;}}}}
//好了這個程式碼就可以完美的實現倒計時啦!
//大家可以拿過去用了
//如果有哪裡做的有瑕疵還請大家多指教