zoukankan      html  css  js  c++  java
  • CountDownTimer

    package com.daoge.widget;
    
    import java.text.DecimalFormat;
    
    import android.os.CountDownTimer;
    import android.widget.TextView;
    
    public class DanceWageTimer extends CountDownTimer {
    
    	public static final int INTERVAL_ONE = 20;
    	public static final int INTERVAL_TWO = 40;
    
    	private TextView textView;
    	private float totalWage;
    	private int startNum = 0;//从多少开始累加
    	private int increased;//每次加多少
    	private int decimals;
    	private int decimalFlag = 0;//记录小数部分的累加
    	private long totalExecuteTime;
    	private long interval;
    	public DanceWageTimer(long millisInFuture, long countDownInterval) {
    		super(millisInFuture, countDownInterval);
    	}
    
    	public DanceWageTimer(long millisInFuture, long countDownInterval, TextView textView, float totalWage) {
    		super(millisInFuture, countDownInterval);
    		this.textView = textView;
    		this.totalWage = totalWage;
    		this.totalExecuteTime = millisInFuture;
    		this.interval = countDownInterval;
    		startNum = DanceWageTimer.getStartNum(totalWage);
    		decimals = (int) ((totalWage - getIntegerOfWage(totalWage)) * 100);
    		increased = DanceWageTimer.getIncreased(startNum);
    	}
    
    	@Override
    	public void onFinish() {
    		DecimalFormat decFormat = new DecimalFormat("##0.00");
    		String result = decFormat.format(totalWage);
    		textView.setText(result);
    	}
    
    	@Override
    	public void onTick(long arg0) {
    		startNum += increased;
    		if (decimalFlag < decimals) {
    			if (totalExecuteTime / interval < decimals) {
    				decimalFlag += 2;
    			} else {
    				decimalFlag++;
    			}
    		}
    		if (decimalFlag < 10) {
    			textView.setText(startNum + ".0" + decimalFlag);
    		} else {
    			textView.setText(startNum + "." + decimalFlag);
    		}
    
    	}
    
    	/**
    	 * @Title getTotalExecuteTime
    	 * @Description 得到总共执行的时间
    	 * @param totalWage
    	 * @return
    	 */
    	public static int getTotalExecuteTime(float totalWage, int interval) {
    		int wage = getIntegerOfWage(totalWage);
    		int startNum = getStartNum(totalWage);
    		int increased = getIncreased(startNum);
    		int result = (wage - startNum) / increased * interval;
    		return result;
    	}
    
    	/**
    	 * @Title getStartNum
    	 * @Description 得到从多少开始累加
    	 * @param totalWage
    	 * @return
    	 */
    	public static int getStartNum(float totalWage) {
    		int wage = getIntegerOfWage(totalWage);
    		if (wage / 10000 >= 1) {
    			return 10000;
    		} else if (wage / 1000 >= 1) {
    			return 1000;
    		} else if (wage / 100 >= 1) {
    			return 100;
    		} else if (wage / 10 >= 1) {
    			return 10;
    		} else {
    			return 0;
    		}
    	}
    
    	/**
    	 * @Title getIncreased
    	 * @Description 得到每次加多少
    	 * @param start
    	 * @return
    	 */
    	private static int getIncreased(int start) {
    		int increased = 0;
    		if (start >= 10000) {
    			increased = 1299;
    		} else if (start >= 1000) {
    			increased = 99;
    		} else if (start >= 100) {
    			increased = 7;
    		} else if (start >= 10) {
    			increased = 1;
    		} else {
    			increased = 1;
    		}
    		return increased;
    	}
    
    	public static int getIntegerOfWage(float totalWage) {
    		return (int) totalWage;
    	}
    
    }
    

      

  • 相关阅读:
    volatile详解
    Java并发之AQS详解
    Thread详解
    Hibernate检索策略
    Hibernate查询方式
    Hibernate--对象关系
    hibernate--hibernate.cfg.xml常用配置详解
    hibernate--CRUD初体验
    hibernate--HelloWorld
    Struts支持的contentType
  • 原文地址:https://www.cnblogs.com/jiezzy/p/4282045.html
Copyright © 2011-2022 走看看