Android仿京东倒计时

在drawable下创建一个文件 shape_miaosha_time.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#000"></solid>
    <corners android:radius="2.5dp"></corners>
</shape>

布局
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="京东秒杀"
            android:textColor="@color/colorAccent"
            />

        <TextView
            android:id="@+id/tv_miaosha_shi"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:background="@drawable/shape_miaosha_time"
            android:gravity="center"
            android:text="1"
            android:textColor="#fff"
            android:textSize="15sp"
            android:layout_marginLeft="10dp"
            />
        <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="25dp"
            android:layout_height="25dp"
            android:background="@drawable/shape_miaosha_time"
            android:gravity="center"
            android:text="1"
            android:textColor="#fff"
            android:textSize="15sp" />
        <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="25dp"
            android:layout_height="25dp"
            android:background="@drawable/shape_miaosha_time"
            android:gravity="center"
            android:text="1"
            android:textColor="#fff"
            android:textSize="15sp" />
    </LinearLayout>
Handler
Handler handler = new Handler(){

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            countDown();
            sendEmptyMessageDelayed(0, 1000);
        }
    };
countDown
private void countDown() {
        //倒计时
        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) {
            tv_miaosha_shi.setText(hour + "点场");
            buffer.append((hour + 2));
            buffer.append(":00:00");
        } else {
            tv_miaosha_shi.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);
            tv_miaosha_shi.setText("0" + hours + "");
            if (minute >= 10) {
                tv_miaosha_minter.setText(minute + "");
            } else {
                tv_miaosha_minter.setText("0" + minute + "");
            }
            if (second >= 10) {
                tv_miaosha_second.setText(second + "");
            } else {
                tv_miaosha_second.setText("0" + second + "");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
startCountDown--->此方法很重要
private void startCountDown() {
        handler.sendEmptyMessage(0);
    }


猜你喜欢

转载自blog.csdn.net/ediao_nvhai/article/details/80117648