Android實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能
本文實(shí)例為大家分享了android獲取驗(yàn)證碼倒計(jì)時(shí)功能的具體代碼,供大家參考,具體內(nèi)容如下
獲取驗(yàn)證碼倒計(jì)時(shí)在現(xiàn)在的App中非常常見(jiàn),他主要的功能點(diǎn)就是給TextView設(shè)置一個(gè)點(diǎn)擊事件,但是當(dāng)點(diǎn)擊后或出現(xiàn)倒計(jì)時(shí),在倒計(jì)時(shí)的時(shí)候點(diǎn)擊是觸發(fā)不了點(diǎn)擊事件的。
等倒計(jì)時(shí)結(jié)束顯示重新獲取驗(yàn)證碼的時(shí)候可以重新觸發(fā)點(diǎn)擊事件;
在真實(shí)的項(xiàng)目中一般都是設(shè)置一分鐘,咱們這里就不設(shè)置那么長(zhǎng)了,設(shè)置10秒;
首先說(shuō)下我這個(gè)demo非常簡(jiǎn)單,工具類不用管,直接復(fù)制到項(xiàng)目中,只需要兩步兩行代碼即可:
第一步:初始化工具類關(guān)聯(lián)需要實(shí)現(xiàn)倒計(jì)時(shí)功能的TextView
/** * 第一個(gè)參數(shù):TextView控件(需要實(shí)現(xiàn)倒計(jì)時(shí)的TextView) * 第二個(gè)參數(shù):倒計(jì)時(shí)總時(shí)間,以毫秒為單位; * 第三個(gè)參數(shù):漸變事件,最低1秒,也就是說(shuō)設(shè)置0-1000都是以一秒漸變,設(shè)置1000以上改變漸變時(shí)間 * 第四個(gè)個(gè)參數(shù):點(diǎn)擊textview之前的背景 * 第五個(gè)參數(shù):點(diǎn)擊textview之后的背景 */ SendSmsTimerUtils mCountDownTimerUtils = new SendSmsTimerUtils(textView, 10000, 1000,R.color.colorAccent,R.color.abcd);
第二步:在TextView的點(diǎn)擊事件中開(kāi)始倒計(jì)時(shí)
textView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { mCountDownTimerUtils.start(); } });
前后加一起兩行代碼直接搞定;
想要了解或者繼續(xù)封裝的同志們可以往下看下工具類:
其實(shí)這個(gè)工具類也不是我自己寫的,是在github上無(wú)意間發(fā)現(xiàn)的一個(gè)工具類,感覺(jué)非常不錯(cuò),就封裝了一下拿過(guò)來(lái)直接使用了:
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); } }
點(diǎn)擊打開(kāi)鏈接免費(fèi)下載源碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android賬號(hào)注冊(cè)實(shí)現(xiàn)點(diǎn)擊獲取驗(yàn)證碼倒計(jì)時(shí)效果
- Android開(kāi)發(fā)之獲取短信驗(yàn)證碼后按鈕背景變化并且出現(xiàn)倒計(jì)時(shí)
- Android短信驗(yàn)證碼倒計(jì)時(shí)驗(yàn)證的2種常用方式
- Android實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼倒計(jì)時(shí)功能示例
- Android自定義View獲取注冊(cè)驗(yàn)證碼倒計(jì)時(shí)按鈕
- Android獲取驗(yàn)證碼倒計(jì)時(shí)顯示效果
- Android自定義Chronometer實(shí)現(xiàn)短信驗(yàn)證碼秒表倒計(jì)時(shí)功能
- Android中驗(yàn)證碼倒計(jì)時(shí)的簡(jiǎn)單實(shí)現(xiàn)方法示例
- Android自定義控件實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)
- Android手機(jī)注冊(cè)登錄時(shí)獲取驗(yàn)證碼之后倒計(jì)時(shí)功能(知識(shí)點(diǎn)總結(jié))
相關(guān)文章
Android開(kāi)發(fā)之毛玻璃效果實(shí)例代碼
這篇文章主要給大家分享android開(kāi)發(fā)之毛玻璃效果的實(shí)例代碼,非常具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05Android之Viewpager+Fragment實(shí)現(xiàn)懶加載示例
本篇文章主要介紹了Android之Viewpager+Fragment實(shí)現(xiàn)懶加載示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Android實(shí)現(xiàn)朋友圈點(diǎn)贊列表
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)朋友圈點(diǎn)贊列表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11詳解Android 語(yǔ)音播報(bào)實(shí)現(xiàn)方案(無(wú)SDK)
本篇文章主要介紹了詳解Android 語(yǔ)音播報(bào)實(shí)現(xiàn)方案(無(wú)SDK),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Android Flutter實(shí)現(xiàn)圖片滑動(dòng)切換效果
Flutter 為了簡(jiǎn)化開(kāi)發(fā),提供了不少轉(zhuǎn)換動(dòng)畫組件,這類組件通常命名為 xxTransition。本篇要介紹的就是 SlideTransition,并用它實(shí)現(xiàn)圖片滑動(dòng)切換效果,感興趣的可以了解一下2022-04-04Android自定義相機(jī)界面的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android自定義相機(jī)界面的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11