一个简单的倒计时控件的实现
来源:互联网 发布:网络命令ping 编辑:程序博客网 时间:2024/06/06 04:03
好久没有写博客了,本来想当做自己的知识库来着,但是有时候不能坚持下来,今天有时间就再来更新下,就写一个简单的倒计时实现,其实没啥难点,Handler+Timer就可以实现.
原理就是:启动一个定时器,每个1秒钟利用handler发送一个请求,然后到handleMessage处理,判断小时,分钟,秒是多少,最后显示到页面上(没有特别难理解的,代码里面就没有写注释,ps:貌似好像也是借鉴的别人的,但是时间有点久远,忘记了)
下面直接上代码吧:
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.jiuair.booking.activity.Djs"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="5dp"> <TextView android:id="@+id/tv_hour" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon_special_tv" android:gravity="center" android:text="48" android:textColor="@color/white" android:textSize="11sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="2dp" android:text="h" android:textColor="@color/black" /> <TextView android:id="@+id/tv_min" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="2dp" android:background="@drawable/icon_special_tv" android:gravity="center" android:text="48" android:textColor="@color/white" android:textSize="11sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="2dp" android:text="m" android:textColor="@color/black" /> <TextView android:id="@+id/tv_second" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="2dp" android:background="@drawable/icon_special_tv" android:gravity="center" android:text="48" android:textColor="@color/white" android:textSize="11sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="2dp" android:text="s" android:textColor="@color/black" /> </LinearLayout></RelativeLayout>
activity的代码:
package com.jiuair.booking.activity;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.TextView;import com.jiuair.booking.R;import java.util.ArrayList;import java.util.Timer;import java.util.TimerTask;public class Djs extends AppCompatActivity { private Handler handler; private int hour; private int min; private int second; private LinearLayout ll_package; private TextView tv_hour; private TextView tv_second; private TextView tv_min; private Timer timer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_djs); handler = new Handler() { @Override public void handleMessage(Message msg) { computeTime(); if (hour <= 0 && min <= 0 && second < 0){ if (timer != null){ timer.cancel(); } handler.removeCallbacks(null); }else{ tv_hour.setText(hour+""); tv_min.setText(min+""); tv_second.setText(second+""); } } }; tv_hour = (TextView)findViewById(R.id.tv_hour); tv_min = (TextView)findViewById(R.id.tv_min); tv_second = (TextView)findViewById(R.id.tv_second); ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(1); list.add(10); hour = list.get(0); min = list.get(1); second = list.get(2); tv_hour.setText(hour+""); tv_min.setText(min+""); tv_second.setText(second+""); timer = new Timer(true); timer.schedule(new TimerTask() { @Override public void run() { Message message = new Message(); handler.sendMessage(message); } },100,1000); } private void computeTime() { second--; if (second < 0) { min--; second = 59; if (min < 0) { min = 59; hour--; } } } @Override public void onDestroy() { handler.removeCallbacks(null); if (timer != null){ timer.cancel(); } super.onDestroy(); }}
阅读全文
0 0
- 一个简单的倒计时控件的实现
- 一个简单的倒计时
- 倒计时的简单实现
- Android控件倒计时的实现
- Android倒计时控件的实现
- 一个简单的倒计时计时器
- 一个简单的倒计时CountDownTimer
- 一个简单的倒计时函数
- Javascript实现一个简单的页面倒计时功能
- android倒计时的简单实现
- 一个简单的FileUpLoad控件的实现。
- 【积淀】封装一个简单的倒计时组件
- 一个简单的js 倒计时问题
- 制作一个简单的倒计时动画
- 一个简单的自定义EditText控件实现
- 画笔实现的一个简单自定义控件
- android倒计时的简单实现方法
- 简单的PHP实现倒计时方法
- Java获取系统CPU、内存、硬盘等配置
- java基础杂谈(一)
- SeekBar 实现网络获取图片随thumb滑动,,并位于中间位置
- 商品详情页面,点击按钮将对应的商品加入购物车
- Apache运行PHP原理
- 一个简单的倒计时控件的实现
- 态度决定高度
- Retrofit简易封装
- LR11:Web Tours登不上
- 使用git将项目上传到github(最简单方法)
- spring boot 使用属性加载顺序
- ipset详解
- Python 从入门到实践 8-9 课后习题
- Android | Android数据存储