澳门银河网上官方赌场_老品牌值得信赖

ITKeyword,专注技术干货聚合推荐

注册 | 登录

Android计时器和倒计时的实现(含开始,暂停,和复位)

梳子不爱头发 分享于

2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:Android倒计时CountDownTimer

public class MainActivity extends Activity { private MyCount mc; private TextView tv; @Override public void onCreate(Bundle savedInst

倒计时和计时在比赛中经常用到,由于涉及到子线程和主线程的通信问题,同学们在制作的时候总有点畏手畏脚的,今天会有两个神器出现,帮助大家攻克这两道难关! 神器一:chronometer --andrdoid 控件的一种,自带监听方法,使用前需要将该控件设置在xml配置文件里 神奇二:CountDownTimer---代码控制的倒计时,只需要调用textview显示即可 ================================================================== 【计时】: 一切从简单开始,首先制作计时功能: 拖动该控件到graph页面上,xml文档如下:

<TextView

android:id="@+id/ctdtxt"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:visibility="gone"

android:textSize="40dp"

android:layout_gravity="center"

android:text="" />

<Chronometer

android:id="@+id/chronometer1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="Chronometer"

android:textSize="80dp" />

一个textview用来显示,下面就是带的计时器了,接下来就是代码大显身手的时候 主Activity private class OnChronometer implements OnChronometerTickListener{

@Override

public void onChronometerTick(Chronometer arg0) {

// TODO Auto-generated method stub

String time=clock.getText().toString().replaceAll("[^(\\d{2}:\\d{2})]", "");

if((hour+":"+minute).equals(time)){

GameStart.this.vibrator.vibrate(new long[]{1000, 10,1000,100},0);//设置震动周期以及循环震动

}

}

}

private class StartListener implements OnClickListener{

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

GameStart.this.clock.setBase(SystemClock.elapsedRealtime()-recordTime);//

GameStart.this.clock.start();//开始计时

}

private class StopListener implements OnClickListener{

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

GameStart.this.clock.stop();//停止计时

GameStart.this.vibrator.cancel();//取消震动

recordTime=SystemClock.elapsedRealtime()-clock.getBase();

}

}

private class BaseListener implements OnClickListener{

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

recordTime=0;//重置时间

GameStart.this.clock.setBase(SystemClock.elapsedRealtime());//复位

}

}

?计时功能完成 效果如图:

======================================================== 【倒计时】: 采用一个CountDownTimer 同样准备一个textview用于显示 代码如下: public void initCountDownTimer(long millisInFuture){

timer = new CountDownTimer(millisInFuture, 1000) {

@Override

public void onTick(long millisUntilFinished) {

// TODO Auto-generated method stub

lefttime=millisUntilFinished;

cdtxt.setText(millisUntilFinished/1000/60+":"+millisUntilFinished/1000%60);

}

@Override

public void onFinish() {

cdtxt.setText("00:00");

}

};

}

开始倒计时后,只有暂停功能

private class StartListener implements OnClickListener{

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if(timer!=null){

Toast.makeText(getBaseContext(),lefttime+"", 100).show();

timer.start();

start.setVisibility(View.GONE); //设置开始按钮隐藏

}

}

}

private class StopListener implements OnClickListener{

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if(timer!=null&&!isPause){

Toast.makeText(getBaseContext(),"pause", 100).show();

isPause=true;

timer.cancel();

}

else if(lefttime!=0){

Toast.makeText(getBaseContext(),"continue", 100).show();

initCountDownTimer(lefttime);

timer.start();

isPause=false;

}

}

}

?实现效果如下:

推荐:android倒计时功能的实现(CountDownTimer)

在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成为了一个方

? ? ? ? ? ? 倒计时和计时在比赛中经常用到,由于涉及到子线程和主线程的通信问题,同学们在制作的时候总有点畏手畏脚的,今天会有两个神器出现,帮助大家攻克这两道难关! 神器一:chronometer

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。

澳门银河网上官方赌场