Android倒计时
来源:互联网 发布:皇帝岛 珊瑚岛 pp 知乎 编辑:程序博客网 时间:2024/06/11 00:32
因为项目需要,做了一个限时抢购的倒计时,其中是天,时,分,上面上截图和代码:这个是活动结束了。。
public class Tasktimer extends Chronometer { public Tasktimer(Context context, AttributeSet attrs) { super(context, attrs); mTimeFormat = new SimpleDateFormat("hh:mm:ss"); this.setOnChronometerTickListener(listener); } private long mTime; private long mNextTime; private OnTimeCompleteListener mListener; private SimpleDateFormat mTimeFormat; public Tasktimer(Context context) { super(context); } /** * 设置时间格式 * * @param pattern 计时格式 */ public void setTimeFormat(String pattern) { mTimeFormat = new SimpleDateFormat(pattern); } public void setOnTimeCompleteListener(OnTimeCompleteListener l) { mListener = l; } OnChronometerTickListener listener = new OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { if (mNextTime <= 0) { if (mNextTime == 0) { Tasktimer.this.stop(); if (null != mListener) mListener.onTimeComplete(); } mNextTime = 0; updateTimeText(); return; } mNextTime--; updateTimeText(); } }; //初始化时间(秒) public void initTime(long _time_s) { mTime = mNextTime = _time_s; updateTimeText(); } //初始化时间(分秒) public void initTime(long _time_h, long _time_m, long _time_s) { initTime(_time_h * 3600 + _time_m * 60 + _time_s); } private void updateTimeText() { this.setText(FormatMiss(mNextTime)); } // 将秒转化成小时分钟秒 public static String FormatMiss(long miss) { String hh = miss / 3600 > 9 ? miss / 3600 + "" : "0" + miss / 3600; String mm = (miss % 3600) / 60 > 9 ? (miss % 3600) / 60 + "" : "0" + (miss % 3600) / 60; String ss = (miss % 3600) % 60 > 9 ? (miss % 3600) % 60 + "" : "0" + (miss % 3600) % 60; return hh + ":" + mm + ":" + ss; } public interface OnTimeCompleteListener { void onTimeComplete(); }}
这个是之前百度到某位仁兄的一个类,不好意思找不到链接。不然就给你贴上去了。接着上代码:
新建一个activity,
private String time;//倒计时private Tasktimer mTasktimer;
mTasktimer = (Tasktimer) findViewById(R.id.task_timer_textview);if (time != null) { mTasktimer.initTime(Long.parseLong(time)); mTasktimer.start(); mTasktimer.setOnTimeCompleteListener(new Tasktimer.OnTimeCompleteListener() { @Override public void onTimeComplete() { freeBtn.setBackgroundResource(R.drawable.btn_unable);//对倒计时结束时做的操作 } });}基本搞定了,方便大家,贴上xml文件。注意一下,这边的time是后台返回的秒数,我觉得着这样子比较安全,就不在本地做计算时间的操作了。<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:gravity="right" android:orientation="horizontal"> <TextView android:id="@+id/deadline_tv" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="距离结束还有" android:textColor="@color/fuzhutitle" android:textSize="12sp" /> <com.example.utils.Tasktimer//这个是你自己包的路径 android:id="@+id/task_timer_textview" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_marginRight="20px" android:textColor="@color/text_color" android:textSize="12sp" /></LinearLayout>
阅读全文
0 0
- Android 倒计时
- android倒计时
- 【Android】倒计时
- android 倒计时
- android 倒计时
- Android 倒计时
- Android 倒计时
- Android 倒计时
- android倒计时
- android 倒计时
- android倒计时
- android 倒计时
- android倒计时
- android倒计时
- Android 倒计时
- android倒计时
- Android倒计时
- Android倒计时!
- SVM-支持向量机学习(7):求解SVM算法-SMO-序列最小最优化
- JS获取当前日期时间
- iOS逆向研究02
- 如何选择IT运维管理系统?
- Visual Studio2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
- Android倒计时
- Android线程池的简单使用
- 谷歌浏览器黑屏问题
- 算法复杂度与稳定性
- 汉诺塔-递归
- python和php对比
- Elasticsearch单机Windows搭建
- Struts模型驱动
- bankForJS_inherit