欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android账号注册实现点击获取验证码倒计时效果

程序员文章站 2024-03-01 17:40:58
网站中为了防止恶意获取验证短信、验证邮箱,都会在点击获取验证码的按钮上做个倒计时的效果,如何实现这个效果,具体内容如下 效果图:   代码: regist...

网站中为了防止恶意获取验证短信、验证邮箱,都会在点击获取验证码的按钮上做个倒计时的效果,如何实现这个效果,具体内容如下

效果图:

Android账号注册实现点击获取验证码倒计时效果

代码:

registeractivity.java

import android.os.bundle;
import android.support.v7.widget.toolbar;
import android.view.view;
import android.widget.button;

import com.jialianjia.bzw.baseactivity;
import com.jialianjia.bzw.r;
import com.jialianjia.bzw.utils.countdownbuttonhelper;
import com.lidroid.xutils.viewutils;
import com.lidroid.xutils.view.annotation.viewinject;

/**
 * 注册功能
 * created by gxs on 2016/4/21.
 */
public class registeractivity extends baseactivity{

 private button btn_yzm;

 @viewinject(r.id.toolbar)
 toolbar toolbar;

 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_register);
 viewutils.inject(this);
 inittoolbar(toolbar,"账号注册",true);

 // 获取验证码--start
 btn_yzm = (button) findviewbyid(r.id.btn_yzm);
 btn_yzm.setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view v) {
  countdownbuttonhelper helper = new countdownbuttonhelper(btn_yzm,"倒计时",60,1);

  helper.setonfinishlistener(new countdownbuttonhelper.onfinishlistener() {
   @override
   public void finish() {
   // toast.maketext(registeractivity.this,"倒计时结束",toast.length_short).show();
   btn_yzm.settext("再次获取");
   }
  });
  helper.start();
  }
 }); // 获取验证码--end
 }
}

布局文件:

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">

 <android.support.v7.widget.toolbar
 android:id="@+id/toolbar"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="?attr/colorprimary"
 android:theme="@style/apptheme.appbaroverlay"
 android:fitssystemwindows="true" />

 <linearlayout
 android:layout_height="50dp"
 android:layout_width="match_parent"
 android:layout_margintop="10dp"
 android:layout_marginright="10dp"
 android:layout_marginleft="10dp"
 android:background="@color/white"
 android:orientation="horizontal">

 <textview
  android:id="@+id/tv_phone"
  android:layout_width="60dp"
  android:layout_height="wrap_content"
  android:text="@string/tv_info_phone"
  android:layout_margin="8dp"
  android:textcolor="@color/black"
  android:layout_gravity="center_vertical"
  android:textsize="17sp"/>

 <edittext
  android:id="@+id/et_phone"
  android:layout_width="190dp"
  android:layout_height="35dp"
  android:layout_torightof="@id/tv_phone"
  android:background="@null"
  android:hint="@string/edt_phone_tips"
  android:maxlength="20"
  android:layout_gravity="center_vertical"
  android:singleline="true"
  android:textsize="16sp" />

 <view
  android:layout_width="2px"
  android:layout_height="50dp"
  android:background="@color/driverline" />

 <button
  android:id="@+id/btn_yzm"
  android:layout_width="wrap_content"
  android:layout_height="50dp"
  android:layout_marginleft="3dp"
  android:layout_gravity="center"
  android:background="@color/white"
  android:text="@string/btn_yzm_text"/>

 </linearlayout>

 <view
 android:id="@+id/view_line"
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:layout_below="@id/tv_phone"
 android:layout_marginleft="10dp"
 android:layout_marginright="10dp"
 android:background="@color/driverline" />


 <linearlayout
 android:layout_height="50dp"
 android:layout_width="match_parent"
 android:layout_margintop="10dp"
 android:layout_marginright="10dp"
 android:layout_marginleft="10dp"
 android:background="@color/white"
 android:orientation="horizontal">

 <textview
  android:id="@+id/tv_yzm"
  android:layout_width="60dp"
  android:layout_height="wrap_content"
  android:text="@string/tv_yzm_text"
  android:layout_margin="8dp"
  android:textcolor="@color/black"
  android:layout_gravity="center_vertical"
  android:textsize="17sp"/>

 <edittext
  android:id="@+id/et_yzm"
  android:layout_width="190dp"
  android:layout_height="35dp"
  android:layout_torightof="@id/tv_phone"
  android:background="@null"
  android:hint="@string/edt_yzm_tips"
  android:maxlength="20"
  android:layout_gravity="center_vertical"
  android:singleline="true"
  android:textsize="16sp" />

 </linearlayout>

 <view
 android:id="@+id/view_line1"
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:layout_below="@id/tv_phone"
 android:layout_marginleft="10dp"
 android:layout_marginright="10dp"
 android:background="@color/driverline" />

 <linearlayout
 android:layout_height="50dp"
 android:layout_width="match_parent"
 android:layout_margintop="10dp"
 android:layout_marginright="10dp"
 android:layout_marginleft="10dp"
 android:background="@color/white"
 android:orientation="horizontal">

 <textview
  android:id="@+id/tv_password"
  android:layout_width="60dp"
  android:layout_height="wrap_content"
  android:text="@string/tv_password_text"
  android:layout_margin="8dp"
  android:textcolor="@color/black"
  android:layout_gravity="center_vertical"
  android:textsize="17sp"/>

 <edittext
  android:id="@+id/et_password"
  android:layout_width="190dp"
  android:layout_height="35dp"
  android:layout_torightof="@id/tv_phone"
  android:background="@null"
  android:hint="@string/edt_password_text"
  android:maxlength="20"
  android:layout_gravity="center_vertical"
  android:singleline="true"
  android:textsize="16sp" />

 </linearlayout>

 <view
 android:id="@+id/view_line2"
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:layout_below="@id/tv_phone"
 android:layout_marginleft="10dp"
 android:layout_marginright="10dp"
 android:background="@color/driverline" />

 <button
 android:id="@+id/btn_regist"
 android:layout_width="match_parent"
 android:layout_height="45dp"
 android:layout_margintop="30dp"
 android:layout_marginleft="10dp"
 android:layout_marginright="10dp"
 android:background="@drawable/btn_select"
 android:gravity="center"
 android:padding="5dp"
 android:text="@string/btn_regist_text"
 android:textcolor="@color/white"
 android:textsize="16sp" />

</linearlayout>

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。