Android实现淘宝倒计时功能

  

本文实例为大家分享了Android实现淘宝倒计时的具体代码,供大家参考,具体内容如下

  

<强>一、效果图强(这里为了方便我就没弄gif图了,功能是能动的)

  

 Android实现淘宝倒计时功能

  

<强>二,实现步骤

  

1。自定义倒计时控件,

        包com.cqxxny.myapplication;      进口android.annotation.SuppressLint;   进口android.content.Context;   进口handler;   进口android.os.Message;   进口android.util.AttributeSet;   进口android.view.LayoutInflater;   进口android.view.View;   进口android.widget.LinearLayout;   进口android.widget.TextView;   进口android.widget.Toast;      进口java.util.Timer;   进口java.util.TimerTask;/* *   *功能:倒计时工具类   *所属模块:   *创建时间:2018/11/15   *功能描述:   */@SuppressLint (“HandlerLeak”)   公开课RushBuyCountDownTimerView LinearLayout{延伸//小时,十位   私人TextView tv_hour_decade;//小时,个位   私人TextView tv_hour_unit;//分钟,十位   私人TextView tv_min_decade;//分钟,个位   私人TextView tv_min_unit;//秒,十位   私人TextView tv_sec_decade;//秒,个位   私人TextView tv_sec_unit;      私人上下文语境;      私人int hour_decade;   私人int hour_unit;   私人int min_decade;   私人int min_unit;   私人int sec_decade;   私人int sec_unit;//计时器   私人计时器计时;      私人处理程序处理程序=new处理程序(){      公共空间handleMessage(消息味精){   倒计时();   };   };      公共RushBuyCountDownTimerView(上下文语境,AttributeSet attrs) {   超级(上下文,attrs);      这一点。上下文=上下文;   LayoutInflater增压泵=(LayoutInflater)上下文   .getSystemService (Context.LAYOUT_INFLATER_SERVICE);   视图查看=inflater.inflate(出来。时间的推移,这个);      tv_hour_decade=(TextView) view.findViewById (R.id.tv_hour_decade);   tv_hour_unit=(TextView) view.findViewById (R.id.tv_hour_unit);   tv_min_decade=(TextView) view.findViewById (R.id.tv_min_decade);   tv_min_unit=(TextView) view.findViewById (R.id.tv_min_unit);   tv_sec_decade=(TextView) view.findViewById (R.id.tv_sec_decade);   tv_sec_unit=(TextView) view.findViewById (R.id.tv_sec_unit);      }/* *   *   * @Description:开始计时   * @param   * @return无效   * @throws   */公共空间开始(){      如果(计时器==null) {   计时器=new计时器();   计时器。日程安排(新TimerTask () {      @Override   公共空间run () {   handler.sendEmptyMessage (0);   }   },0,1000);   }   }/* *   *   * @Description:停止计时   * @param   * @return无效   * @throws   */公共空间停止(){   如果(计时器!=null) {   timer.cancel ();   计时器=零;   }   }/* *   * @throws例外   *   * @Description:设置倒计时的时长   * @param   * @return无效   * @throws   */公共空间凝固时间(int, int, int sec) {      如果(60小时祝辞=| |分钟祝辞=60 | |交会祝辞=60 | |小时& lt;0 | |分钟& lt;0   | |秒& lt;0){   把新的RuntimeException(“时间格式错误,请检查你的代码”);   }      hour_decade=小时/10;   hour_unit - hour_decade * 10=小时;      min_decade=10分钟/;   min_unit=10 min - min_decade *;      sec_decade=秒/10;   sec_unit=秒- sec_decade * 10;      tv_hour_decade。setText (hour_decade + " ");   tv_hour_unit。setText (hour_unit + " ");   tv_min_decade。setText (min_decade + " ");   tv_min_unit。setText (min_unit + " ");   tv_sec_decade。setText (sec_decade + " ");   tv_sec_unit。setText (sec_unit + " ");      }/* *   *   * @Description:倒计时   * @param   * @return布尔   * @throws   */私人空间倒计时(){      如果(isCarry4Unit (tv_sec_unit)) {   如果(isCarry4Decade (tv_sec_decade)) {      如果(isCarry4Unit (tv_min_unit)) {   如果(isCarry4Decade (tv_min_decade)) {      如果(isCarry4Unit (tv_hour_unit)) {   如果(isCarry4Decade (tv_hour_decade)) {   吐司。makeText(上下文”,时间到”了,   Toast.LENGTH_SHORT),告诉();   停止();   }   }   }   }   }   }   }/* *   *   * @Description:变化十位,并判断是否需要进位   * @param   * @return布尔   * @throws   */私人布尔isCarry4Decade (TextView电视){      .toString int时间=Integer.valueOf (tv.getText () ());   时间=- 1;   如果时间& lt;0){   时间=5;   电视。setText(时间+ " ");   返回true;   其他}{   电视。setText(时间+ " ");   返回错误;   }      }/* *   *   * @Description:变化个位,并判断是否需要进位   * @param   * @return布尔   * @throws   */私人布尔isCarry4Unit (TextView电视){      .toString int时间=Integer.valueOf (tv.getText () ());   时间=- 1;   如果时间& lt;0){   时间=9;   电视。setText(时间+ " ");   返回true;   其他}{   电视。setText(时间+ " ");   返回错误;   }      }   }

Android实现淘宝倒计时功能