您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要为大家展示了“Android如何实现仿京东秒杀倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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>
然后主要布局,你可以单独书写,然后引用出去
**count_down.xml** <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center_vertical"> <TextView android:id="@+id/tv_miaosha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:text="京东秒杀" android:textColor="#f00" android:textSize="20sp" /> <TextView android:id="@+id/tv_miaosha_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="12点场" android:textSize="20sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <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" /> <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> </LinearLayout> </LinearLayout>
这里写逻辑代码
//使用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如何实现仿京东秒杀倒计时”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。