今天分享一个基础知识,主要有:
1、解决CountDownTimer计时器少一秒的问题;
2、实现一个简单的自定义view
关于计时器,Android已经分装好了CountDownTimer,给我们的开发带来了很大的方便,使用时只要new CountDownTimer(long millisInFuture, long countDownInterval)就可以了,来看一下API。
CountDownTimer (long millisInFuture, long countDownInterval)
参数1,倒计时的总时间(毫秒)
参数2,每次间隔多少毫秒
CountDownTimer我们使用最常见的场景应该是获取验证码。下面我们来看一个简单的获取验证码案例。
在页面放一个按钮Button。
<Button
android:id="@+id/btnStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="获取验证码" />
private Button btnStart;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
}
private void initView(){
btnStart =(Button) findViewById(R.id.btnStart);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//1,请求服务器...
//2,触发定时器刷新UI(验证码发送成功后调用)
timer.start();
}
});
}
private CountDownTimer timer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
btnStart.setText((millisUntilFinished / 1000) + "秒后可重发");
}
@Override
public void onFinish() {
btnStart.setEnabled(true);