效果图如下所示:
由于我仿的京东是分模块的,所以,这次主要描述秒杀模块!
首先设置好时间的背景
drawable文件下创建shape_miaosha_time.xml
<&#63;xml version="1.0" encoding="utf-8"&#63;>
然后主要布局,你可以单独书写,然后引用出去
**count_down.xml** <&#63;xml version="1.0" encoding="utf-8"&#63;>
这里写逻辑代码
//使用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(); } }
注意,这里才是开启的代码
private void startCountDown() { handler.sendEmptyMessage(0); }
总结
以上所述是小编给大家介绍的Android 仿京东秒杀倒计时代码 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!