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

 更新时间:2016年05月25日 11:58:13   作者:Gxs丶小宇  
这篇文章主要为大家详细介绍了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>

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

相关文章

  • android仿微信通讯录搜索示例(匹配拼音,字母,索引位置)

    android仿微信通讯录搜索示例(匹配拼音,字母,索引位置)

    本篇文章主要介绍了android仿微信通讯录搜索示例(匹配拼音,字母,索引位置),具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • Android基础之获取LinearLayout的宽高

    Android基础之获取LinearLayout的宽高

    LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。有的时候,我们需要想获取LinearLayout宽高,下面通过这篇文章来跟着小编一起学习学习吧。
    2016-11-11
  • Android实现全局悬浮框

    Android实现全局悬浮框

    这篇文章主要为大家详细介绍了Android实现全局悬浮框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android电量优化提高手机续航

    Android电量优化提高手机续航

    这篇文章主要为大家介绍了Android电量优化提高你的手机续航示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Kotlin线程的桥接与切换使用介绍

    Kotlin线程的桥接与切换使用介绍

    这篇文章主要介绍了Android开发中Kotlin线程的桥接与切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 关于gradle你应该知道的一些小事

    关于gradle你应该知道的一些小事

    这篇文章主要给大家介绍了关于gradle你应该知道的一些小事,文中通过示例代码介绍的非常详细,对大家学习或者使用gradle具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Android如何获取屏幕、状态栏及标题栏的高度详解

    Android如何获取屏幕、状态栏及标题栏的高度详解

    在日常开发中,经常会遇到获取屏幕高度、状态栏高度等需求,所以下面这篇文章就给大家总结介绍了关于Android如何获取屏幕、状态栏及标题栏高度的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们可以参考下。
    2017-10-10
  • 浅谈Android Activity与Service的交互方式

    浅谈Android Activity与Service的交互方式

    下面小编就为大家带来一篇浅谈Android Activity与Service的交互方式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 利用Fiddler对手机进行抓包的实现方法

    利用Fiddler对手机进行抓包的实现方法

    下面小编就为大家带来一篇利用Fiddler对手机进行抓包的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Android项目实战之ListView悬浮头部展现效果实现

    Android项目实战之ListView悬浮头部展现效果实现

    这篇文章主要给大家介绍了Android项目实战之ListView悬浮头部展现效果实现的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01

最新评论