小视频源码,自定义倒计时,结束后进入重新发送界面
小视频源码,自定义倒计时,结束后进入重新发送界面
1 | <Button <br> android:id= "@+id/rebind_sms_btn" <br> android:layout_width= "120dp" <br> android:layout_height= "45dp" <br> android:layout_marginLeft= "5dp" <br> android:layout_marginRight= "5dp" <br> android:background= "@null" <br> android:gravity= "center" <br> android:text= "获取短信验证码" <br> android:textColor= "#059CD4" <br> android:textSize= "16sp" /> |
自定义倒计时时间类:
1 | import android.os.CountDownTimer;<br>import android.widget.TextView;<br> public class MyCountTimer extends CountDownTimer {<br> public static final int TIME_COUNT = 121000; // 时间防止从119s开始显示(以倒计时120s为例子)<br> private TextView btn;<br> private int endStrRid;<br> private int normalColor, timingColor;// 未计时的文字颜色,计时期间的文字颜色<br> /**<br> * 参数 millisInFuture 倒计时总时间(如60S,120s等) 参数 countDownInterval 渐变时间(每次倒计1s)<br> * <br> * 参数 btn 点击的按钮(因为Button是TextView子类,为了通用我的参数设置为TextView)<br> * <br> * 参数 endStrRid 倒计时结束后,按钮对应显示的文字<br> */<br> public MyCountTimer(long millisInFuture, long countDownInterval,<br> TextView btn, int endStrRid) {<br> super(millisInFuture, countDownInterval);<br> this.btn = btn;<br> this.endStrRid = endStrRid;<br> }<br> /**<br> * <br> * 参数上面有注释<br> */<br> public MyCountTimer(TextView btn, int endStrRid) {<br> super(TIME_COUNT, 1000);<br> this.btn = btn;<br> this.endStrRid = endStrRid;<br> }<br> public MyCountTimer(TextView btn) {<br> super(TIME_COUNT, 1000);<br> this.btn = btn;<br> this.endStrRid = R.string.txt_getMsgCode_validate;<br> }<br> public MyCountTimer(TextView tv_varify, int normalColor, int timingColor) {<br> this(tv_varify);<br> this.normalColor = normalColor;<br> this.timingColor = timingColor;<br> }<br> // 计时完毕时触发<br> @Override<br> public void onFinish() {<br> if (normalColor > 0) {<br> btn.setTextColor(normalColor);<br> }<br> btn.setText(endStrRid);<br> btn.setEnabled(true);<br> }<br> // 计时过程显示<br> @Override<br> public void onTick(long millisUntilFinished) {<br> if (timingColor > 0) {<br> btn.setTextColor(timingColor);<br> }<br> btn.setEnabled(false);<br> btn.setText(millisUntilFinished / 1000 + "秒");<br> }<br>} |
使用:
1 | <br> public class MainActivity extends Activity {<br> private Button rebind_sms_btn;<br> @Override<br> protected void onCreate(Bundle savedInstanceState) {<br> super.onCreate(savedInstanceState);<br> setContentView(R.layout.activity_main);<br> rebind_sms_btn=(Button) findViewById(R.id.rebind_sms_btn);<br> rebind_sms_btn.setOnClickListener( new OnClickListener() {<br> @Override<br> public void onClick(View v) {<br> // txt_getMsgCode_validate//定义为重新发送<br> MyCountTimer myCountTimer=new MyCountTimer(60000, 1000,rebind_sms_btn,R.string.txt_getMsgCode_validate );<br> myCountTimer.start();<br> }<br> });<br> }<br>} |
以上就是 小视频源码,自定义倒计时,结束后进入重新发送界面,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现