iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 自定义View之倒计时实例代码
  • 913
分享到

Android 自定义View之倒计时实例代码

倒计时view自定义viewAndroid 2022-06-06 01:06:34 913人浏览 八月长安
摘要

Android 自定义View之倒计时实例代码 需求: 大多数app在注册的时候,都有一个获取验证码的按钮,点击后,访问接口,最终用户会收到短信验证码。为了不多次写这个获取验

Android 自定义View之倒计时实例代码

需求:

大多数app在注册的时候,都有一个获取验证码的按钮,点击后,访问接口,最终用户会收到短信验证码。为了不多次写这个获取验证码的接口,下面将它自定义成一个view,方便使用。

分析一下,这是一个TextView,点击的时候变色,不能再点击,同时里面的倒计时开始显示。那么就有了下面的代码

代码:


 
public class CountDownView extends TextView { 
  private long totalMills = 10 * 1000;//倒计时的总时间,根据需要更改这个值 
  private long interval = 1000;//倒计时的时间间隔 
  public CountDownView(Context context) { 
    super(context); 
  } 
  public CountDownView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
  } 
  public CountDownView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
  } 
  private TimeCount mTimeCount; 
  private void startCount(long totalMills, long countDownInterval) { 
    if (mTimeCount == null) 
      mTimeCount = new TimeCount(totalMills, countDownInterval); 
    mTimeCount.start(); 
  } 
  public void start(){ 
    defaultText = getText().toString(); 
    startCount(totalMills, interval); 
  } 
  public void cancel() { 
    if (mTimeCount != null){ 
      mTimeCount.onFinish(); 
      mTimeCount.cancel(); 
    } 
  } 
  String defaultText = "";//获取到在点击之前的文本内容 
  class TimeCount extends CountDownTimer { 
    public TimeCount(long millisInFuture, long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
    } 
    @Override 
    public void onTick(long millisUntilFinished) { 
      setEnabled(false); 
      setText(millisUntilFinished / 1000 + "S"); 
    } 
    @Override 
    public void onFinish() { 
      setEnabled(true); 
      setText(defaultText); 
    } 
  } 
} 

测试代码:


public class MainActivity extends Activity implements OnClickListener { 
  private CountDownView mCountDownView; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mCountDownView = (CountDownView) findViewById(R.id.tv_1); 
    mCountDownView.setOnClickListener(this); 
    findViewById(R.id.tv_2).setOnClickListener(this); 
  } 
  int count = 0; 
  DemoThread thread; 
  @Override 
  public void onClick(View v) { 
    if(v.getId() == R.id.tv_1){ 
      mCountDownView.start(); 
      thread = new DemoThread(); 
      thread.start(); 
    } else if (v.getId() == R.id.tv_2) { 
      mCountDownView.cancel(); 
      System.out.println("wisely 取消倒计时"); 
    } 
  } 
  class DemoThread extends Thread{ 
    @Override 
    public void run() { 
      while (count < 10) { 
        SystemClock.sleep(100); 
        count++; 
        System.out.println("wisely count:" + count); 
      } 
    } 
  } 
} 

总结

1、使用的时候,为该控件设置点击事件,然后调用start()方法,剩下的就是你自己的代码,一般都是联网调接口。

2、获取验证码的控件背景可以设置为selector选择器,设置Android:state_enabled属性。上面例子的selector选择器代码如下:


<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="Http://schemas.android.com/apk/res/android" > 
  <item android:state_enabled="true" android:drawable="@color/green"/> 
  <item android:state_enabled="false" android:drawable="@color/red"/> 
</selector> 

3、在退出activity时,记得调用控件的cancel方法销毁它,否则会造成内存泄露。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android自定义View倒计时圆Android 自定义闪屏页广告倒计时view效果Android中使用TextView实现高仿京东淘宝各种倒计时效果Android自定义View获取注册验证码倒计时按钮Android自定义view倒计时60秒


--结束END--

本文标题: Android 自定义View之倒计时实例代码

本文链接: https://www.lsjlt.com/news/21723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android自定义View倒计时圆
    本文实例为大家分享了Android自定义View倒计时圆的具体代码,供大家参考,具体内容如下 创建attr<?xml version="1.0" encoding="utf-8"?><resour...
    99+
    2023-05-30
    android view 倒计时圆
  • Android自定义View实现APP启动页倒计时效果
    Android自定义View实现APP启动页倒计时效果,供大家参考,具体内容如下 之前也是做过APP启动页的倒计时效果,但是只有文字变化,没有动画效果,这次通过使用自定义View控件...
    99+
    2024-04-02
  • Android自定义view实现雪花特效实例代码
    目录一、前言二、创意名三、效果展示四、实现步骤五、编码实现总结一、前言 这个冬天,老家一直没有下雨, 正好圣诞节,就想着制作一个下雪的特效。 圣诞祝福:平安夜,舞翩阡。雪花飘,飞满天...
    99+
    2022-12-28
    android实现雪花特效 android雪花特效 android自定义view
  • Android实现一个倒计时自定义控件
    目录(一)前言(二)效果展示(三)实现思路(三)代码地址总结(一)前言 Android 其实提供了一个倒计时控件叫做CountDownTimer,这个倒计时控件用起来也很简单,但是要...
    99+
    2024-04-02
  • Android自定义View实现计时文字详解
    目录前言一、XML样式二、构造方法三、API方法四、使用五、源码前言   在Android开发中,常常会有计时的一些操作,例如收验证码的时候倒计时,秒表的计时等等...
    99+
    2023-05-17
    Android 自定义View计时文字 Android View
  • Android自定义view之3D正方体效果实例
    目录前言一、小提二、将传感器改成事件分发机制三、使用四、源码总结前言 在之前写了一篇关于3D效果的文章,借助传感器展示,有小伙伴问可不可以改成手势滑动操作(事件分发),所以出一篇文...
    99+
    2024-04-02
  • Android如何实现一个倒计时自定义控件
    这篇“Android如何实现一个倒计时自定义控件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android如何实现一个倒计...
    99+
    2023-06-29
  • Android自定义View实现时钟效果
    本文实例为大家分享了Android自定义View实现时钟效果的具体代码,供大家参考,具体内容如下 自定义时钟 初学自定义View,先画一个不太成熟的时钟(甚至只有秒针) 时钟效果 ...
    99+
    2024-04-02
  • Android自定义View实现时钟功能
    最近在练习自定义view, 想起之前面试的时候笔试有道题是写出自定义一个时钟的关键代码. 今天就来实现一下. 步骤依然是先分析, 再上代码. 实现效果 View分析 时钟主要分为五...
    99+
    2024-04-02
  • Android 自定义View 之 Dialog弹窗
    Dialog弹窗 前言正文一、弹窗视图帮助类二、弹窗控制类三、监听接口四、样式五、简易弹窗六、常规使用七、简易使用八、源码 前言   在日常开发中用到弹窗是比较多的,常用于提示作用,比如错误操作提示,余额不足提示,退出登录提...
    99+
    2023-08-18
    自定义Dialog 简易提示弹窗 EasyDialog
  • android自定义对话框实例代码
    1.实现效果    2.定义dialog.xml (res/layout/dialog.xml) <?xml version="1.0" encoding="utf...
    99+
    2024-04-02
  • android自定义View之复合控件
    复合控件可以很好地创建出具有重用功能的控件集合。 很多的APP都有一些共通的UI界面,为了统一应用程序的风格,下面我们就以一个Topbar为实例讲解复合控件。 实现效果如图: 第一...
    99+
    2024-04-02
  • Flutter自定义年月日倒计时
    本文实例为大家分享了Flutter自定义年月日倒计时的具体代码,供大家参考,具体内容如下 因项目中的订单页需要一个定时器,比如下单后需要进行倒计时,等倒计时完后,订单状态自动关闭。 ...
    99+
    2024-04-02
  • 微信小程序自定义scroll-view的实例代码
    小程序自定义 scroll-view 滚动条 话不多说, 直接上效果图 效果图 wxml代码 <scroll-view scroll-x class="scrol...
    99+
    2024-04-02
  • Android自定义View原理(实战)
    目录1、为什么需要自定义View2、自定义View的基本方法3、自定义View的属性如何操作4、View的视图结构5、View的坐标系6、View树的绘制流程6.1 measure过...
    99+
    2024-04-02
  • python实现新年倒计时实例代码
    目录前言代码:代码效果展示图:总结前言 最近一直心心念念的想着过年回家 于是乎就敲了一个新年倒计时的代码出来 大家用的时候可以更改上面的日期,以后年年都可以用 话不多说,上代码 代码...
    99+
    2024-04-02
  • Android自定义View实现随机数验证码
    目录前言效果自定义 View 分类步骤1.自定义属性2.添加构造方法3.在构造里获取自定义样式4.重写 onDraw 计算坐标绘制5.重写 onMeasure 测量宽高6.设置点击事...
    99+
    2024-04-02
  • android中自定义View之复合控件的示例分析
    这篇文章给大家分享的是有关android中自定义View之复合控件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。复合控件可以很好地创建出具有重用功能的控件集合。很多的APP都有一些共通的UI界面,为了统...
    99+
    2023-06-15
  • Android自定义View之渐变色折线图的实现
    目录前言如何实现总结前言 在之前的项目中,有做过一个需求,需要实现一个颜色渐变的折线图。当时项目中使用的图表库是MPAndroidChart,但是该库没有提供合适的方法来实现想要的效...
    99+
    2024-04-02
  • Android 之自定义 View 的死亡三部曲之 Layout
    在 Android 中,自定义 View 的死亡三部曲是指测量(Measure)、布局(Layout)和绘制(Draw)三个阶段。L...
    99+
    2023-09-21
    Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作