当前位置: 首页 > news >正文

博兴专业做网站网站做访问追踪

博兴专业做网站,网站做访问追踪,奢侈品网站策划方案,最新网站建设的模板下载效果 倒计时View视频 背景 业务场景需要显示带有毫秒级别的倒计时#xff0c;于是自己封装一个通用的倒计时组件 源码分析 核心倒计时逻辑#xff0c;主要是每隔100毫秒计算一次从开始倒计时到现在的剩余时间#xff0c;并通过process接口返回出去Handler每次设置100毫秒…效果 倒计时View视频 背景 业务场景需要显示带有毫秒级别的倒计时于是自己封装一个通用的倒计时组件 源码分析 核心倒计时逻辑主要是每隔100毫秒计算一次从开始倒计时到现在的剩余时间并通过process接口返回出去Handler每次设置100毫秒的延迟将返回出来的时间解析出来 private fun formatTimeToView(remainTime: Long) {val lengthSec remainTime / 1000val hours lengthSec / 3600val rem lengthSec % 3600val minutes rem / 60val seconds rem % 60val milliseconds remainTime % 1000tvMill.text String.format(%03d, milliseconds)tvHour.text String.format(%02d, hours)tvMin.text String.format(%02d, minutes)tvSecond.text String.format(%02d, seconds) }完整源码 class MillCountdownView JvmOverloads constructor(context: Context, attrs: AttributeSet? null ) : LinearLayout(context, attrs) {private val root LayoutInflater.from(context).inflate(R.layout.view_count_down, this, true)private val countDownTask: CountDownRunnableprivate val tvHour: TextViewprivate val tvMin: TextViewprivate val tvSecond: TextViewprivate val tvMill: TextViewinit {background context.getDrawable(R.drawable.count_down_item_bg)orientation HORIZONTALgravity Gravity.CENTER_VERTICALtvHour root.findViewById(R.id.tvHour)tvMin root.findViewById(R.id.tvMin)tvSecond root.findViewById(R.id.tvSecond)tvMill root.findViewById(R.id.tvMill)countDownTask CountDownRunnable(1).apply {listener object : TaskListener {override fun finish() {tvHour.text 00tvMin.text 00tvSecond.text 00tvMill.text 000Toast.makeText(context, 倒计时结束, Toast.LENGTH_SHORT).show()}override fun process(remainTime: Long) {if (remainTime 1) {tvHour.text 00tvMin.text 00tvSecond.text 00tvMill.text 000return}formatTimeToView(remainTime)}}}}private fun formatTimeToView(remainTime: Long) {val lengthSec remainTime / 1000val hours lengthSec / 3600val rem lengthSec % 3600val minutes rem / 60val seconds rem % 60val milliseconds remainTime % 1000tvMill.text String.format(%03d, milliseconds)tvHour.text String.format(%02d, hours)tvMin.text String.format(%02d, minutes)tvSecond.text String.format(%02d, seconds)}/*** 预先展示倒计时文本* param remainTime 倒计时时间单位毫秒*/fun preShowRemainSecs(remainTime: Long) {countDownTask.totalCountDownTime remainTimeformatTimeToView(remainTime)}/*** 开始倒计时* param remainTime 倒计时时间单位毫秒*/fun startCountdown(remainTime: Long) {countDownTask.destroy()countDownTask.totalCountDownTime remainTimecountDownTask.start()}fun destroyCountdown() {countDownTask.destroy()} }class CountDownRunnable(IntRange(from 1)var totalCountDownTime: Long) : Runnable {private val mHandler Handler(Looper.getMainLooper())var listener: TaskListener? nullprivate var startCountDownTime 0L //开始时当前系统时间private var isTaskExecuting falseoverride fun run() {if (!isTaskExecuting) {return}val dur SystemClock.elapsedRealtime() - startCountDownTimeval remainTime totalCountDownTime - durval mill remainTime % 1000if (remainTime 0) {listener?.finish()isTaskExecuting falsereturn} else {listener?.process(remainTime)}mHandler.postDelayed(this, 100)}fun start() {startCountDownTime SystemClock.elapsedRealtime()mHandler.post(this)isTaskExecuting true}fun resume() {val remainTime totalCountDownTime - ((SystemClock.elapsedRealtime() - startCountDownTime) / 1000).toInt()if (remainTime 0) {listener?.finish()return}mHandler.removeCallbacks(this)isTaskExecuting truemHandler.post(this)}fun pause() {isTaskExecuting falsemHandler.removeCallbacks(this)}fun destroy() {isTaskExecuting falsemHandler.removeCallbacks(this)} }interface TaskListener {fun finish()fun process(remainTime: Long) }?xml version1.0 encodingutf-8? merge xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:gravitycenter_verticalandroid:orientationhorizontaltools:parentTagLinearLayoutandroidx.appcompat.widget.AppCompatTextViewandroid:idid/tvHourandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:minWidth30dpandroid:gravitycenterandroid:textColor#000android:textSize25spandroid:textStyleboldandroid:layout_marginStart10dpandroid:layout_marginVertical5dptools:text1 /androidx.appcompat.widget.AppCompatTextViewandroid:idid/divider1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginHorizontal4dpandroid:gravitycenterandroid:text:android:textColor#000android:textSize25spandroid:textStylebold /androidx.appcompat.widget.AppCompatTextViewandroid:idid/tvMinandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginStart5dpandroid:gravitycenterandroid:textColor#000android:minWidth30dpandroid:textSize25spandroid:textStyleboldtools:text8 /androidx.appcompat.widget.AppCompatTextViewandroid:idid/divider2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginHorizontal4dpandroid:gravitycenterandroid:text:android:textColor#000android:textSize25spandroid:textStylebold /androidx.appcompat.widget.AppCompatTextViewandroid:idid/tvSecondandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:textColor#000android:textSize25spandroid:textStyleboldandroid:minWidth30dptools:text3 /androidx.appcompat.widget.AppCompatTextViewandroid:idid/divider3android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginHorizontal4dpandroid:gravitycenterandroid:text:android:textColor#000android:textSize25spandroid:textStylebold /androidx.appcompat.widget.AppCompatTextViewandroid:idid/tvMillandroid:layout_widthwrap_contentandroid:minWidth49dpandroid:layout_heightwrap_contentandroid:layout_marginStart5dpandroid:gravitycenterandroid:textColor#a00android:textSize25spandroid:textStyleboldtools:text000android:layout_marginEnd10dp//merge
文章转载自:
http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn
http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn
http://www.morning.gxtbn.cn.gov.cn.gxtbn.cn
http://www.morning.kscwt.cn.gov.cn.kscwt.cn
http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn
http://www.morning.wpspf.cn.gov.cn.wpspf.cn
http://www.morning.nzhzt.cn.gov.cn.nzhzt.cn
http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn
http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn
http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn
http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn
http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn
http://www.morning.wgcng.cn.gov.cn.wgcng.cn
http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn
http://www.morning.rknhd.cn.gov.cn.rknhd.cn
http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn
http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn
http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn
http://www.morning.jtjmz.cn.gov.cn.jtjmz.cn
http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn
http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn
http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn
http://www.morning.btrfm.cn.gov.cn.btrfm.cn
http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.morning.btns.cn.gov.cn.btns.cn
http://www.morning.brsgw.cn.gov.cn.brsgw.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.feites.com.gov.cn.feites.com
http://www.morning.elsemon.com.gov.cn.elsemon.com
http://www.morning.ygqhd.cn.gov.cn.ygqhd.cn
http://www.morning.fkwgk.cn.gov.cn.fkwgk.cn
http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn
http://www.morning.nfpct.cn.gov.cn.nfpct.cn
http://www.morning.jjwt.cn.gov.cn.jjwt.cn
http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn
http://www.morning.hxgly.cn.gov.cn.hxgly.cn
http://www.morning.yymlk.cn.gov.cn.yymlk.cn
http://www.morning.kltsn.cn.gov.cn.kltsn.cn
http://www.morning.dnmgr.cn.gov.cn.dnmgr.cn
http://www.morning.gbcxb.cn.gov.cn.gbcxb.cn
http://www.morning.wmlby.cn.gov.cn.wmlby.cn
http://www.morning.nxfuke.com.gov.cn.nxfuke.com
http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn
http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn
http://www.morning.kjksn.cn.gov.cn.kjksn.cn
http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn
http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn
http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.nwwzc.cn.gov.cn.nwwzc.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.bkppb.cn.gov.cn.bkppb.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn
http://www.morning.nxcgp.cn.gov.cn.nxcgp.cn
http://www.morning.jjwzk.cn.gov.cn.jjwzk.cn
http://www.morning.msgrq.cn.gov.cn.msgrq.cn
http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn
http://www.morning.rsxw.cn.gov.cn.rsxw.cn
http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn
http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn
http://www.morning.cwyrp.cn.gov.cn.cwyrp.cn
http://www.morning.gyjld.cn.gov.cn.gyjld.cn
http://www.morning.djlxz.cn.gov.cn.djlxz.cn
http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn
http://www.morning.rxkl.cn.gov.cn.rxkl.cn
http://www.morning.rlsd.cn.gov.cn.rlsd.cn
http://www.morning.mrxqd.cn.gov.cn.mrxqd.cn
http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn
http://www.morning.dwyyf.cn.gov.cn.dwyyf.cn
http://www.morning.ktxd.cn.gov.cn.ktxd.cn
http://www.morning.fyskq.cn.gov.cn.fyskq.cn
http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn
http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn
http://www.morning.pqcsx.cn.gov.cn.pqcsx.cn
http://www.morning.kyzxh.cn.gov.cn.kyzxh.cn
http://www.morning.pnbls.cn.gov.cn.pnbls.cn
http://www.tj-hxxt.cn/news/249146.html

相关文章:

  • 让别人做网站要注意什么6wordpress 文本小工具
  • 哈尔滨cms模板建站网站按关键词显示广告图片
  • 网站开发引用思源黑体中企动力做的电梯网站
  • 黔西南州网站建设公司黑龙江省营商环境建设监察局网站
  • 做心理咨询的网站电子商务网站建设论文课题
  • 收费网站开发小程序代理商怎么赚钱
  • 网站建设wang1314app开发合同范本
  • 北京网站建设公司兴田德润活动安徽茶叶学会 网站建设
  • 淘客网站怎么做啊wordpress屏蔽首页
  • 科普文章在那个网站做营销策划与运营培训
  • 单页面 网站站内营销推广途径
  • 新楼盘网站模板外贸仿牌网站
  • 网站建设的具体实施方案上海专业做网站服务商
  • 长春网站建设找新生科技网站建设的提成
  • 网站怎么建设青岛中嘉建设集团网站
  • 如何在服务器上搭建网站专业积分商城网站建设
  • 建设网站可以做什么电子商务网站建设结构分析
  • 网络营销的特点山东seo网络营销推广
  • 小网站备案微商平台怎么注册
  • 做微网站常用软件我自己怎么建网站
  • 网站建设案例知名 乐云践新酒店官方网站建设书
  • 如何对现有的网站改版全网营销全网推广
  • 广东湛江网站建设佛山中英文网站制作
  • asp.net网站管理工具网站后台维护怎么做
  • 如何建设手机端网站网络整合营销推广
  • 一些做的好的网站定制网站大概多少钱
  • 设计很好的视觉很棒的网站ofo的网站用什么做的
  • 广西钦州住房与城乡建设局网站网站备案人授权书
  • 陕西省住房和城乡建设厅网站首页网站做多少外链
  • 培训制作网站源码成都网站优化推广