电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android實(shí)現(xiàn)倒計(jì)時(shí)效果

瀏覽:3日期:2022-09-22 10:15:37

本文實(shí)例為大家分享了Android實(shí)現(xiàn)倒計(jì)時(shí)效果的具體代碼,供大家參考,具體內(nèi)容如下

一個(gè)倒計(jì)時(shí)的效果

先看效果圖:

Android實(shí)現(xiàn)倒計(jì)時(shí)效果

直接上代碼:

這里是關(guān)于倒計(jì)時(shí) …天時(shí)分秒…的邏輯判斷

/** * 倒計(jì)時(shí)計(jì)算 */ private void computeTime() { mSecond--; if (mSecond < 0) { mMin--; mSecond = 59; if (mMin < 0) { mMin = 59; mHour--; if (mHour < 0) { // 倒計(jì)時(shí)結(jié)束 mHour = 23; mDay--; if(mDay < 0){ // 倒計(jì)時(shí)結(jié)束 mDay = 0; mHour= 0; mMin = 0; mSecond = 0; } } } }}

定時(shí)器主要代碼如下…當(dāng)然也可以開(kāi)線程或者開(kāi)后臺(tái)服務(wù)來(lái)處理…只是沒(méi)那種必要…定時(shí)器就可以搞定容易控制…畢竟倒計(jì)時(shí)時(shí)間起點(diǎn)…你總得后臺(tái)獲取吧,不是做時(shí)鐘鬧鐘…如果是做時(shí)鐘鬧鐘…拿你也不用考慮后臺(tái)服務(wù)或者自己開(kāi)線程…而是使用AlarmManager來(lái)實(shí)現(xiàn)

/** * 開(kāi)啟倒計(jì)時(shí) * //time為Date類型:在指定時(shí)間執(zhí)行一次。 * timer.schedule(task, time); * //firstTime為Date類型,period為long,表示從firstTime時(shí)刻開(kāi)始,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, firstTime,period); * //delay 為long類型:從現(xiàn)在起過(guò)delay毫秒執(zhí)行一次。 * timer.schedule(task, delay); * //delay為long,period為long:從現(xiàn)在起過(guò)delay毫秒以后,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, delay,period); */ private void startRun() { TimerTask mTimerTask = new TimerTask() { @Override public void run() { Message message = Message.obtain(); message.what = 1; timeHandler.sendMessage(message); } }; mTimer.schedule(mTimerTask,0,1000); }

修改界面,利用handler來(lái)提醒更新界面

private Handler timeHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { computeTime(); mDays_Tv.setText(mDay+'');//天數(shù)不用補(bǔ)位 mHours_Tv.setText(getTv(mHour)); mMinutes_Tv.setText(getTv(mMin)); mSeconds_Tv.setText(getTv(mSecond)); if (mSecond == 0 && mDay == 0 && mHour == 0 && mMin == 0 ) { mTimer.cancel(); } } } }; private String getTv(long l){ if(l>=10){ return l+''; }else{ return '0'+l;//小于10,,前面補(bǔ)位一個(gè)'0' } }

附帶主activity的代碼…

import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.RelativeLayout;import android.widget.TextView; import java.util.Timer;import java.util.TimerTask; public class MainActivity extends AppCompatActivity { private RelativeLayout countDown; // 倒計(jì)時(shí) private TextView mDays_Tv, mHours_Tv, mMinutes_Tv, mSeconds_Tv; private long mDay = 23;// 天 private long mHour = 11;//小時(shí), private long mMin = 56;//分鐘, private long mSecond = 32;//秒 private Timer mTimer; private Handler timeHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { computeTime(); mDays_Tv.setText(mDay+'');//天數(shù)不用補(bǔ)位 mHours_Tv.setText(getTv(mHour)); mMinutes_Tv.setText(getTv(mMin)); mSeconds_Tv.setText(getTv(mSecond)); if (mSecond == 0 && mDay == 0 && mHour == 0 && mMin == 0 ) { mTimer.cancel(); } } } }; private String getTv(long l){ if(l>=10){ return l+''; }else{ return '0'+l;//小于10,,前面補(bǔ)位一個(gè)'0' } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTimer = new Timer(); countDown = (RelativeLayout) findViewById(R.id.countdown_layout); mDays_Tv = (TextView) findViewById(R.id.days_tv); mHours_Tv = (TextView) findViewById(R.id.hours_tv); mMinutes_Tv = (TextView) findViewById(R.id.minutes_tv); mSeconds_Tv = (TextView) findViewById(R.id.seconds_tv); startRun(); } /** * 開(kāi)啟倒計(jì)時(shí) * //time為Date類型:在指定時(shí)間執(zhí)行一次。 * timer.schedule(task, time); * //firstTime為Date類型,period為long,表示從firstTime時(shí)刻開(kāi)始,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, firstTime,period); * //delay 為long類型:從現(xiàn)在起過(guò)delay毫秒執(zhí)行一次。 * timer.schedule(task, delay); * //delay為long,period為long:從現(xiàn)在起過(guò)delay毫秒以后,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, delay,period); */ private void startRun() { TimerTask mTimerTask = new TimerTask() { @Override public void run() { Message message = Message.obtain(); message.what = 1; timeHandler.sendMessage(message); } }; mTimer.schedule(mTimerTask,0,1000); } /** * 倒計(jì)時(shí)計(jì)算 */ private void computeTime() { mSecond--; if (mSecond < 0) { mMin--; mSecond = 59; if (mMin < 0) { mMin = 59; mHour--; if (mHour < 0) { // 倒計(jì)時(shí)結(jié)束 mHour = 23; mDay--; if(mDay < 0){ // 倒計(jì)時(shí)結(jié)束 mDay = 0; mHour= 0; mMin = 0; mSecond = 0; } } } } }}

附帶xml的代碼

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android: android:layout_width='match_parent' android:layout_height='match_parent' android:background='@android:color/white' android:gravity='center' > <RelativeLayout android: android:layout_width='match_parent' android:layout_height='40.0dip' android:layout_marginLeft='10.0dip' android:layout_marginRight='10.0dip' android:gravity='center' > <ImageView android: android:layout_width='40dp' android:layout_height='40dp' android:src='http://www.hdgsjgj.cn/bcjs/@mipmap/img' android:scaleType='fitXY' android:gravity='center_vertical' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_marginRight='5.0dip' android:layout_toRightOf='@+id/describe_iv' android:text='距離開(kāi)團(tuán)還有' android:textSize='25sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:padding='4dp' android:layout_toRightOf='@+id/describe_tv' android:background='#c2c2c2' android:gravity='center' android:text='' android:textSize='20sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_marginLeft='5.0dip' android:layout_marginRight='3.0dip' android:layout_toRightOf='@+id/days_tv' android:text='天' android:textSize='20sp' android:textStyle='bold' /> </RelativeLayout> <RelativeLayout android:layout_width='match_parent' android:layout_height='wrap_content' android:layout_below='@+id/daojishi_rl' android:gravity='center_horizontal' > <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_toLeftOf='@+id/colon1' android:background='#c2c2c2' android:gravity='center' android:text='23' android:padding='3dp' android:textSize='20sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_marginLeft='3.0dip' android:layout_marginRight='3.0dip' android:layout_toLeftOf='@+id/minutes_tv' android:text=':' android:textSize='20sp' android:textStyle='bold' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_toLeftOf='@+id/colon2' android:background='#c2c2c2' android:gravity='center' android:text='59' android:padding='3dp' android:textSize='20sp' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerVertical='true' android:layout_marginLeft='3.0dip' android:layout_marginRight='3.0dip' android:layout_toLeftOf='@+id/seconds_tv' android:text=':' android:textSize='20sp' android:textStyle='bold' /> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_alignParentRight='true' android:layout_centerVertical='true' android:background='#c2c2c2' android:gravity='center' android:text='59' android:padding='3dp' android:textSize='20sp' /> </RelativeLayout> </RelativeLayout>

完美實(shí)現(xiàn),直接用就可以了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂| 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 精密模具-双色注塑模具加工-深圳铭洋宇通 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 软装设计-提供软装装饰和软装配饰及软装陈设的软装设计公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 中山东港家具集团-酒店-办公-医养家具定制厂家| 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 |