使用 Chronometer 实现倒计时

使用 Chronometer 实现倒计时

在实际业务开发的场景中,经常会有要用到倒计时的功能,比如一个广告页面倒计时,比如一个超时自动关闭页面,等这些操作都离不开倒计时的概念。
当然,我们完全可以自己去实现一个倒计时逻辑,例如使用 timer ,或者使用 RxJava 等各种定时策略。
本文介绍一个比较简单的,系统原生提供的一个组件 Chronometer

具体实现

XML

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>

Activity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class ChronoActivity1 extends AppCompatActivity {

int time = 60;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


Chronometer chronometer = findViewById(R.id.chronometer);
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {

if (time == 0) {
chronometer.setText("0");
chronometer.stop();
finish();
} else {
time--;
chronometer.setText(time + "");
}
}
});
chronometer.start();
}
}

是不是觉得非常简单呢?

============ END ============