亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:7日期: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)然也可以開線程或者開后臺(tái)服務(wù)來處理…只是沒那種必要…定時(shí)器就可以搞定容易控制…畢竟倒計(jì)時(shí)時(shí)間起點(diǎn)…你總得后臺(tái)獲取吧,不是做時(shí)鐘鬧鐘…如果是做時(shí)鐘鬧鐘…拿你也不用考慮后臺(tái)服務(wù)或者自己開線程…而是使用AlarmManager來實(shí)現(xiàn)

/** * 開啟倒計(jì)時(shí) * //time為Date類型:在指定時(shí)間執(zhí)行一次。 * timer.schedule(task, time); * //firstTime為Date類型,period為long,表示從firstTime時(shí)刻開始,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, firstTime,period); * //delay 為long類型:從現(xiàn)在起過delay毫秒執(zhí)行一次。 * timer.schedule(task, delay); * //delay為long,period為long:從現(xiàn)在起過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來提醒更新界面

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(); } /** * 開啟倒計(jì)時(shí) * //time為Date類型:在指定時(shí)間執(zhí)行一次。 * timer.schedule(task, time); * //firstTime為Date類型,period為long,表示從firstTime時(shí)刻開始,每隔period毫秒執(zhí)行一次。 * timer.schedule(task, firstTime,period); * //delay 為long類型:從現(xiàn)在起過delay毫秒執(zhí)行一次。 * timer.schedule(task, delay); * //delay為long,period為long:從現(xiàn)在起過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.aoyou183.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='距離開團(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)文章:
主站蜘蛛池模板: 亚洲综合激情另类专区 | 97国产成人精品免费视频 | 亚洲福利片 | 欧美特黄录像播放 | 这里只有精品视频 | 成人在线免费看 | 黄色网址免费在线 | 婷婷丁香五月中文字幕 | 色欧美在线视频 | 在线观看免费视频片 | 亚洲无av码一区二区三区 | 亚洲国产成人影院播放 | 国产成人a大片大片在线播放 | 国产xxxx色视频在线观看14 | 国产uv1区二区三区 国产va免费精品观看 | 91天堂一区二区 | 亚洲欧美日韩中文字幕在线一 | 国内真实愉拍系列情侣 | 91高清视频 | 精品久久久久久 | 国产91小视频在线观看 | 98国内自拍在线视频 | 久夜色精品国产一区二区三区 | 免费看欧美成人性色生活片 | 欧美日韩在线视频不卡一区二区三区 | 国产亚洲精品自在线观看 | 成人网在线观看 | 欧美一级视频 | 最新97超级碰碰碰碰久久久久 | 黄色片免费在线看 | 男女激情视频国产免费观看 | 国产97在线看| 精品欧美一区二区三区免费观看 | 色综合小说久久综合图片 | 视频黄在线观看 | 在线视频 日韩 | 国产亚洲人成网站在线观看 | 亚洲欧美国产精品第1页 | 激情亚州 | 亚洲国产精品视频在线观看 | 国产色婷婷亚洲99精品小说 |