1. 程式人生 > >Android-京東秒殺

Android-京東秒殺



效果圖:


京東秒殺是兩個小時一個場次,判斷本機的時間進行場次定時,然後在這兩個小時裡面進行倒計時。

MainActivity

package com.bwie.com.myapplication;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import java.sql.Date
; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; public class MainActivity extends AppCompatActivity { private TextView miaosha_time; private TextView miaosha_shi; private TextView miaosha_minter; private TextView miaosha_second; private
Handler handler
= new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); setTime(); sendEmptyMessageDelayed(0, 1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate
(savedInstanceState); setContentView(R.layout.activity_main); initView(); handler.sendEmptyMessage(0); } public void initView(){ miaosha_time = (TextView) findViewById(R.id.tv_miaosha_time); miaosha_shi = (TextView) findViewById(R.id.tv_miaosha_shi); miaosha_minter = (TextView) findViewById(R.id.tv_miaosha_minter); miaosha_second = (TextView) findViewById(R.id.tv_miaosha_second); } //秒殺倒計時 public void setTime() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis()); String format = df.format(curDate); StringBuffer buffer = new StringBuffer(); String substring = format.substring(0, 11); buffer.append(substring); Log.d("ccc", substring); Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); if (hour % 2 == 0) { miaosha_time.setText(hour + "點場"); buffer.append((hour + 2)); buffer.append(":00:00"); } else { miaosha_time.setText((hour - 1) + "點場"); buffer.append((hour + 1)); buffer.append(":00:00"); } String totime = buffer.toString(); try { java.util.Date date = df.parse(totime); java.util.Date date1 = df.parse(format); long defferenttime = date.getTime() - date1.getTime(); long days = defferenttime / (1000 * 60 * 60 * 24); long hours = (defferenttime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); long minute = (defferenttime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); long seconds = defferenttime % 60000; long second = Math.round((float) seconds / 1000); miaosha_shi.setText("0" + hours + ""); if (minute >= 10) { miaosha_minter.setText(minute + ""); } else { miaosha_minter.setText("0" + minute + ""); } if (second >= 10) { miaosha_second.setText(second + ""); } else { miaosha_second.setText("0" + second + ""); } } catch (ParseException e) { e.printStackTrace(); } } }
佈局檔案:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.bwie.com.myapplication.MainActivity">

    <LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical">

        <TextView
android:id="@+id/tv_miaosha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="京東秒殺"
android:textColor="#f00" />

        <TextView
android:id="@+id/tv_miaosha_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="10點場" />

        <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">


            <TextView
android:id="@+id/tv_miaosha_shi"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />

            <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text=":" />

            <TextView
android:id="@+id/tv_miaosha_minter"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />

            <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text=":" />

            <TextView
android:id="@+id/tv_miaosha_second"
android:layout_width="15dp"
android:layout_height="15dp"
android:background="@drawable/shape_miaosha_time"
android:gravity="center"
android:text="1"
android:textColor="#fff"
android:textSize="10sp" />
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>
shape_miaosha_time.xml(對倒計時小黑框圓角的實現)
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#000"></solid>
   <corners android:radius="3dp"></corners>

</shape>