温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android如何实现仿京东秒杀倒计时

发布时间:2021-06-28 13:52:24 来源:亿速云 阅读:262 作者:小新 栏目:移动开发

这篇文章主要为大家展示了“Android如何实现仿京东秒杀倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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>

Android如何实现仿京东秒杀倒计时 

这里写逻辑代码

//使用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如何实现仿京东秒杀倒计时”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI