Android 仿京东秒杀倒计时代码,android 60s倒计时

6
回复
660
查看
[复制链接]

317

主题

929

帖子

697

安币

手工艺人

发表于 2018-3-20 11:54:26 | 显示全部楼层 |阅读模式

            

        效果图如下所示:

        

        由于我仿的京东是分模块的,所以,这次主要描述秒杀模块!

        首先设置好时间的背景

        drawable文件下创建shape_miaosha_time.xml

[Java] 查看源文件 复制代码
<

        然后主要布局,你可以单独书写,然后引用出去

[Java] 查看源文件 复制代码
**count_down.xml**
<

        

        这里写逻辑代码

[Java] 查看源文件 复制代码
//使用handler用于更新ui
private handler handler = new handler() {
  @override
  public void handlemessage(message msg) {
   super.handlemessage(msg);
   countdown();
   sendemptymessagedelayed(0, 1000);
  }
 };
 /**
  * 秒杀
  */
 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) {
   mmiaoshatimetv.settext(hour + "点场");
   buffer.append((hour + 2));
   buffer.append(":00:00");
  } else {
   mmiaoshatimetv.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);
   mmiaoshashitv.settext("0" + hours + "");
   if (minute >= 10) {
    mmiaoshamintertv.settext(minute + "");
   } else {
    mmiaoshamintertv.settext("0" + minute + "");
   }
   if (second >= 10) {
    mmiaoshasecondtv.settext(second + "");
   } else {
    mmiaoshasecondtv.settext("0" + second + "");
   }
  } catch (parseexception e) {
   e.printstacktrace();
  }
 }

        注意,这里才是开启的代码

[Java] 查看源文件 复制代码
private void startcountdown() {
  handler.sendemptymessage(0);
 }

        总结






        

400

主题

1064

帖子

337

安币

手工艺人

发表于 2018-3-20 16:36:18 | 显示全部楼层
楼主是好人,回个帖会有安币吗?

0

主题

9261

帖子

2903

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-20 20:55:45 | 显示全部楼层
感谢分享,楼主V5~

501

主题

1177

帖子

317

安币

手工艺人

发表于 2018-3-21 01:08:40 | 显示全部楼层
每次我都积极回帖的,想要安币~

7

主题

9574

帖子

1970

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-21 05:04:23 | 显示全部楼层
帮帮顶顶!!

21

主题

9473

帖子

2049

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-21 09:51:10 | 显示全部楼层
支持楼主,支持安卓巴士!

0

主题

9477

帖子

1147

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-21 13:26:21 | 显示全部楼层
感谢大神~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )