新的商品详情,对特卖要增加倒计时的功能:

采用了android系统的CountDownTimer这个类

关于这个类的用法:

* Schedule a countdown until a time in the future, with

* regular notifications on intervals along the way.

*

* Example of showing a 30 second countdown in a text field:

*

*

* new CountDownTimer(30000, 1000) {

*

*     public void onTick(long millisUntilFinished) {

*         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);

*     }

*

*     public void onFinish() {

*         mTextField.setText("done!");

*     }

*  }.start();

在时间工具类中加了两个方法:

/**

* 获得倒计时的时间间隔

*

* @param dateStr

* @return

*/

public static long getCountdownInterval(String dateStr) {

long interval = 0;

if (StringUtils.isBlank(dateStr)) {

return interval;

}

Date countdownDate = new Date();

try {

countdownDate = DB_DATE_FORMAT.parse(dateStr);

} catch (ParseException e) {

LogUtils.loge("DateUtils", "日期格式有问题");

}

Date now = new Date();

interval = countdownDate.getTime() - now.getTime();

if (interval < 0)

return 0;

return interval;

}

/**

* @param createTime

* @return 返回离当前时刻的时间间隔,以中文形式描述

*/

public static int[] getCountdownIntervalDetails(long intervalSec) {

int[] countdownIntervalDetals = new int[4];

intervalSec = intervalSec / 1000;// 先转成秒

// 天

int day = (int) (intervalSec / (24 * 3600));

countdownIntervalDetals[0] = day;

intervalSec = intervalSec - day * (24 * 3600);

// 时

int hour = (int) (intervalSec / 3600);

countdownIntervalDetals[1] = hour;

intervalSec = intervalSec - hour * 3600;

// 分

int min = (int) (intervalSec / 60);

countdownIntervalDetals[2] = min;

intervalSec = intervalSec - min * 60;

countdownIntervalDetals[3] = (int) intervalSec;

return countdownIntervalDetals;

}

最后,组装成一个控件:

/**

* 倒计时控件

*/

public class L_CountdownBlock implements Y_UIBlock {

private Context mContext;

private View container;

private CountDownTimer cdt;

private TextView tv_countdown_day;

private TextView tv_countdown_hour;

private TextView tv_countdown_min;

private TextView tv_countdown_sec;

protected int[] intervalDetails;

public L_CountdownBlock(View view) {

this.container = view;

this.mContext = container.getContext();

}

/**

* 设置结束时间

*

* @param dateStr

*/

private void setDate(String dateStr) {

long interval = DateUtils.getCountdownInterval(dateStr);

cdt = new CountDownTimer(interval, 1000) {

@Override

public void onTick(long millisUntilFinished) {

intervalDetails = DateUtils

.getCountdownIntervalDetails(millisUntilFinished);

tv_countdown_day.setText(intervalDetails[0] + "");

tv_countdown_hour.setText(intervalDetails[1] + "");

tv_countdown_min.setText(intervalDetails[2] + "");

tv_countdown_sec.setText(intervalDetails[3] + "");

}

@Override

public void onFinish() {

//TODO 加了倒计时结束的逻辑

}

};

cdt.start();

}

/**

* 取消倒计时

*/

private void cancelCountdown() {

if (null != cdt) {

cdt.cancel();

}

}

@Override

public void update(T t) {

tv_countdown_day = (TextView) container

.findViewById(R.id.tv_countdown_day);

tv_countdown_hour = (TextView) container

.findViewById(R.id.tv_countdown_hour);

tv_countdown_min = (TextView) container

.findViewById(R.id.tv_countdown_min);

tv_countdown_sec = (TextView) container

.findViewById(R.id.tv_countdown_sec);

setDate((String) t);

}

@Override

public View getContentView() {

return container;

}

}

android 倒计时声音,android 倒计时实现相关推荐

  1. android+camera+声音,Android Camera.takePicture - 可以禁用快门声音和预览表面?

    这实际上是一个电话的build.prop属性.我不确定是否有可能改变这一点.除非你完全覆盖它并使用你自己的相机代码.使用SDK中可用的功能. 看看这个: CameraService.cpp . . . ...

  2. android+警告声音,android – 如何使用带有setAudioAttributes的警报音量播放铃声?

    所以我试图围绕音频属性.这是我到目前为止所拥有的: // alarm.getSound() will return a proper URI to pick a ringtone Ringtone t ...

  3. android倒计时功能,android实现倒计时功能(开始、暂停、0秒结束)

    本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer ...

  4. android倒计时功能,Android 实现列表倒计时功能

    Android 实现列表倒计时功能 发布时间:2020-08-21 21:47:11 来源:脚本之家 阅读:147 作者:Choi晨 单个计时器,然后遍历数据 刷新条目: 两种实现方式:1.Handl ...

  5. Android项目开发实战—倒计时[Handler,Timer,TimerTask,Message]

    Android实现倒计时 先上一个本人实际操作中的界面: 源代码: (activity_main.xml和MainActivity.java) activity_main.xml: <Linea ...

  6. Android电商抢购倒计时,Android限时抢购倒计时实现代码

    限时抢购倒计时实现效果图 布局: android:id="@+id/ll_xsqg" android:layout_width="match_parent" a ...

  7. android欢迎页圆形倒计时,android 欢迎页圆形进度条倒计时功能

    常见app欢迎页圆形进度条倒计时功能,可设置显示文字,进度条颜色,宽度,倒计时时间,内圆颜色.设置进度条类型  顺数进度条(0-100)还是倒数进度条(100-0): 先上效果图: 下面介绍实现逻辑: ...

  8. Android学习之路-----倒计时欢迎界面(更有条理)

    2019独角兽企业重金招聘Python工程师标准>>> Android学习之路-----倒计时欢迎界面(更有条理) 转载于:https://my.oschina.net/symahl ...

  9. android 一分钟倒计时动画,Android View篇之启动页倒计时动画的实现

    Hello,小伙伴们大家好,今天介绍一个很简单的倒计时动画,仿酷狗音乐的启动页倒计时效果,也是大多数APP在用的一个动画,来看看效果图: 在这里插入图片描述 整体的思路就是用一个平滑的帧动画来画圆弧就 ...

最新文章

  1. css布局中的居中问题
  2. 无向图的最短路径求解算法之——Dijkstra算法
  3. Error: ENOSPC: System limit for number of file watchers reached, watch'所在文件路径'
  4. 开发中经常碰到的问题cookie和session问题,今天一并解决
  5. [MongoDB]db.serverStatus()命令详解
  6. 初识Android应用程序的五大基本组件
  7. 计算机视觉三大顶级会议ICCV,CVPR,ECCV网址
  8. oracle中新增一列赋值,给List里添加一字段并赋值 | 学步园
  9. 如何去除计算机的访问限制,访问限制达成,教你如何禁止别人访问你电脑的C盘...
  10. 华为服务器内存位置,服务器上的内存在哪里
  11. python中oxf_python的strip()函数不工作
  12. PAT (Basic Level) Practice1015 德才论
  13. linux命令获取显示器信息,如何确定液晶显示器是否从Linux命令行打开
  14. python毕业设计作品基于django框架 教室图书馆座位预约系统毕设成品(6)开题答辩PPT
  15. html 字体图标库,阿里字体图标库介绍及图标字体的使用方法
  16. 计算机2进制、4进制、8进制、10进制、16进制、32进制计算规则
  17. GoLang json格式化输出
  18. stm32f407探索者开发板(二)——新建工程(基于固件库)
  19. Java之美[从菜鸟到高手演变]之字符串
  20. ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

热门文章

  1. 疫情期间网民情绪识别比赛分享+top1~3解决方案
  2. Pycharm工具Python开发自动添加注释(详细)
  3. 4个mysql客户端工具的比较
  4. ajax原理和基础步骤面试怎么答
  5. MYSQL高可用集群架构——MHA架构
  6. mysql 搭建mha_MHA快速搭建
  7. 操作系统武功修炼心法
  8. 独立站运营必做的6项工作内容
  9. 消除eclipse中php项目的错误提示
  10. C++知识进阶之#defines使用优化