仿京东秒杀 倒计时

布局

   <LinearLayout
        android:gravity="center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:paddingLeft="16dp">

        <TextView
            android:textColor="#FF3848"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textSize="22sp"
            android:text="京东秒杀"/>

        <TextView
            android:textColor="#222222"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textSize="19sp"
            android:text="  12点场 "/>
        <TextView
            android:textStyle="bold"
            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="@drawable/daojishi_shape"
            android:textColor="@android:color/white"
            android:textSize="15sp"
            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:textStyle="bold"
            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="@drawable/daojishi_shape"
            android:textColor="@android:color/white"
            android:textSize="14sp"
            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:textStyle="bold"
            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:background="@drawable/daojishi_shape"
            android:textColor="@android:color/white"
            android:textSize="14sp"
            android:text="36"/>

    </LinearLayout> 

代码

      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(mHour+"");
                }
                if(mMin<10){
                    tvMinute.setText("0"+mMin+"");
                }else{
                    tvMinute.setText(mMin+"");
                }if(mSecond<10){
                    tvSecond.setText("0"+mSecond+"");
                }else{
                    tvSecond.setText(mSecond+"");
                }
            }
        }
    };
    TextView tvHour = view.findViewById(R.id.tv_hour);
    TextView tvMinute = view.findViewById(R.id.tv_minute);
    TextView tvSecond = view.findViewById(R.id.tv_second);
    startRun();

引用

        /**
     * 开启倒计时
     * */
    private void startRun(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                while(isRun){
                    try {
                        //睡眠一秒发送消息handler
                        Thread.sleep(1000);
                        Message message = Message.obtain();
                        message.what=1;
                        //发送消息
                        timeHandler.sendMessage(message);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
//调用 倒计时计算的方法
    /**
     * 倒计时计算
     * */
    private static void computeTime(){
        //首先把秒减1
        mSecond--;
        if(mSecond<0){//如果秒已经减到了0
            mMin--;//分钟就减1
            mSecond=59;//秒变成 59
            if(mMin<0){//如果分钟小于0
                mMin=59;//分钟变成59
                mHour--;//小时减1
            }
        }
    }

走马灯、倒计时在首页里面

github

猜你喜欢

转载自blog.csdn.net/jiaosheng1/article/details/78985335