这篇文章将为大家详细讲解有关怎么在Android应用中实现一个信验证码倒计时功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现步骤:一个关键类:CountDownTimer(Androi
这篇文章将为大家详细讲解有关怎么在Android应用中实现一个信验证码倒计时功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
实现步骤:
一个关键类:CountDownTimer(Android系统自带的倒计时功能类)
public class CountDownTimerUtils extends CountDownTimer { private TextView mTextView; //显示倒计时的文字 public CountDownTimerUtils(TextView textView, long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); this.mTextView = textView; } @Override public void onTick(long millisUntilFinished) { mTextView.setClickable(false); //设置不可点击 mTextView.setText(millisUntilFinished / 1000 + "秒后可重新发送"); //设置倒计时时间 mTextView.setBackgroundResource(R.drawable.validate_code_press_bg); //设置按钮为灰色,这时是不能点击的 SpannableString spannableString = new SpannableString(mTextView.getText().toString()); //获取按钮上的文字 ForegroundColorSpan span = new ForegroundColorSpan(Color.RED); spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//将倒计时的时间设置为红色 mTextView.setText(spannableString); } @Override public void onFinish() { mTextView.setText("重新获取验证码"); mTextView.setClickable(true);//重新获得点击 mTextView.setBackgroundResource(R.drawable.validate_code_nORMal_bg); //还原背景色 }}
在合适的地方调用
使用:
CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(mButton, 60000, 1000); //倒计时1分钟mCountDownTimerUtils.start();
validate_code_press_bg.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="Http://schemas.android.com/apk/res/android"> <!--发送短信验证码按钮被按下--> <solid android:color="#C0C0C0" /> <!--填充色 透明--> <corners android:radius="8dp" /> <!-- 圆角 --></shape>
validate_code_normal_bg.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--发送短信验证码按钮未按下--> <solid android:color="#FF9933" /> <!--填充色 透明--> <corners android:radius="8dp" /> <!-- 圆角 --></shape>
关于怎么在Android应用中实现一个信验证码倒计时功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
--结束END--
本文标题: 怎么在Android应用中实现一个信验证码倒计时功能
本文链接: https://lsjlt.com/news/224553.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0