android实现抢券倒计时,Android 抢购类倒计时实现 (包括天数,小时,分钟,秒)...

Android 抢购类倒计时实现,本文注重实现功能,代码里有注释,实现起来比较简单,所有不做过多解释。

先上图:

0818b9ca8b590ca3270a3433284dd417.png

实现倒计时可采用Message + Handler 来实现,具体实现如下:

MainActivity的代码如下:

package com.example.android_countdown;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.app.Activity;

import android.view.View;

import android.widget.RelativeLayout;

import android.widget.TextView;

/**

* 抢购倒计时

*

* @author shihao

*

*/

public class MainActivity extends Activity {

private RelativeLayout countDown;

// 倒计时

private TextView daysTv, hoursTv, minutesTv, secondsTv;

private long mDay = 10;

private long mHour = 10;

private long mMin = 30;

private long mSecond = 00;// 天 ,小时,分钟,秒

private boolean isRun = true;

private Handler timeHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

if (msg.what==1) {

computeTime();

daysTv.setText(mDay+"");

hoursTv.setText(mHour+"");

minutesTv.setText(mMin+"");

secondsTv.setText(mSecond+"");

if (mDay==0&&mHour==0&&mMin==0&&mSecond==0) {

countDown.setVisibility(View.GONE);

}

}

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

countDown = (RelativeLayout) findViewById(R.id.countdown_layout);

daysTv = (TextView) findViewById(R.id.days_tv);

hoursTv = (TextView) findViewById(R.id.hours_tv);

minutesTv = (TextView) findViewById(R.id.minutes_tv);

secondsTv = (TextView) findViewById(R.id.seconds_tv);

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--;

if (mHour < 0) {

// 倒计时结束

mHour = 23;

mDay--;

}

}

}

}

}

activity_main.xml代码如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/countdown_layout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/white"

android:gravity="center" >

android:id="@+id/daojishi_rl"

android:layout_width="match_parent"

android:layout_height="40.0dip"

android:layout_marginLeft="10.0dip"

android:layout_marginRight="10.0dip"

android:gravity="center" >

android:id="@+id/describe_iv"

android:layout_width="40.0dip"

android:layout_height="40.0dip"

android:background="@drawable/daojishi"

android:gravity="center_vertical" />

android:id="@+id/describe_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_marginRight="5.0dip"

android:layout_toRightOf="@+id/describe_iv"

android:text="距离开团还有 "

android:textSize="25sp" />

android:id="@+id/days_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_toRightOf="@+id/describe_tv"

android:background="@drawable/daojishiframe"

android:gravity="center"

android:text="20"

android:textSize="20sp" />

android:id="@+id/colon0"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_marginLeft="5.0dip"

android:layout_marginRight="3.0dip"

android:layout_toRightOf="@+id/days_tv"

android:text="天"

android:textSize="20sp"

android:textStyle="bold" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/daojishi_rl"

android:gravity="center_horizontal" >

android:id="@+id/hours_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_toLeftOf="@+id/colon1"

android:background="@drawable/daojishiframe"

android:gravity="center"

android:text="23"

android:textSize="20sp" />

android:id="@+id/colon1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_marginLeft="3.0dip"

android:layout_marginRight="3.0dip"

android:layout_toLeftOf="@+id/minutes_tv"

android:text=":"

android:textSize="20sp"

android:textStyle="bold" />

android:id="@+id/minutes_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_toLeftOf="@+id/colon2"

android:background="@drawable/daojishiframe"

android:gravity="center"

android:text="59"

android:textSize="20sp" />

android:id="@+id/colon2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_marginLeft="3.0dip"

android:layout_marginRight="3.0dip"

android:layout_toLeftOf="@+id/seconds_tv"

android:text=":"

android:textSize="20sp"

android:textStyle="bold" />

android:id="@+id/seconds_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:background="@drawable/daojishiframe"

android:gravity="center"

android:text="59"

android:textSize="20sp" />

项目下载地址:http://download.csdn.net/detail/shr957250701/8172137
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值