本篇文章為大家展示了如何在Android中實(shí)現(xiàn)一個驗(yàn)證碼倒計(jì)時功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的玉龍網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
第一步:初始化工具類關(guān)聯(lián)需要實(shí)現(xiàn)倒計(jì)時功能的TextView
/** * 第一個參數(shù):TextView控件(需要實(shí)現(xiàn)倒計(jì)時的TextView) * 第二個參數(shù):倒計(jì)時總時間,以毫秒為單位; * 第三個參數(shù):漸變事件,最低1秒,也就是說設(shè)置0-1000都是以一秒漸變,設(shè)置1000以上改變漸變時間 * 第四個個參數(shù):點(diǎn)擊textview之前的背景 * 第五個參數(shù):點(diǎn)擊textview之后的背景 */ SendSmsTimerUtils mCountDownTimerUtils = new SendSmsTimerUtils(textView, 10000, 1000,R.color.colorAccent,R.color.abcd);
第二步:在TextView的點(diǎn)擊事件中開始倒計(jì)時
textView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { mCountDownTimerUtils.start(); } });
前后加一起兩行代碼直接搞定;
想要了解或者繼續(xù)封裝的同志們可以往下看下工具類:
其實(shí)這個工具類也不是我自己寫的,是在github上無意間發(fā)現(xiàn)的一個工具類,感覺非常不錯,就封裝了一下拿過來直接使用了:
public class SendSmsTimerUtils extends CountDownTimer { private int inFuture; private int downInterval; private TextView mTextView; public SendSmsTimerUtils(TextView textView, long millisInFuture, long countDownInterval, int inFuture, int downInterval) { super(millisInFuture, countDownInterval); this.mTextView = textView; this.inFuture=inFuture; this.downInterval=downInterval; } public void onTick(long millisUntilFinished) { mTextView.setClickable(false); mTextView.setText(millisUntilFinished / 1000 + "秒后可重新發(fā)送"); mTextView.setBackgroundResource(downInterval); SpannableString spannableString = new SpannableString(mTextView.getText().toString()); ForegroundColorSpan span = new ForegroundColorSpan(Color.RED); //設(shè)置秒數(shù)為紅色 if (millisUntilFinished/1000 > 9) { spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); } else { spannableString.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); } mTextView.setText(spannableString); } @Override public void onFinish() { mTextView.setText("重新獲取驗(yàn)證碼"); mTextView.setClickable(true); mTextView.setBackgroundResource(inFuture); } }
上述內(nèi)容就是如何在Android中實(shí)現(xiàn)一個驗(yàn)證碼倒計(jì)時功能,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。