国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中使用Handler及Countdowntimer實現(xiàn)包含倒計時的閃屏頁面

2019-10-23 18:35:47
字體:
供稿:網(wǎng)友

上一篇博文《Android中Handler使用淺析》通過實現(xiàn)倒計時閃屏頁面的制作引出了Handler的使用方法以及實現(xiàn)原理,博文末尾也提到了實現(xiàn)過程中的Bug,有興趣的朋友可以點擊鏈接回去看看。今天通過使用Handler以及CountDownTimer來實現(xiàn)完整版的倒計時閃屏(不會出現(xiàn)在退出閃屏頁后,依然會跳轉(zhuǎn)頁面的現(xiàn)象)。

1. 實現(xiàn)效果如下:

1.1  正常進入跳轉(zhuǎn)的效果以及l(fā)og顯示

android,handler實現(xiàn)倒計時,countdownview,倒計時android,handler實現(xiàn)倒計時,countdownview,倒計時

1.2  倒計時未結(jié)束時退出以及l(fā)og顯示

android,handler實現(xiàn)倒計時,countdownview,倒計時

android,handler實現(xiàn)倒計時,countdownview,倒計時

對比上篇博文的實現(xiàn),退出后計時停止且不會再跳到新的界面

2. 實現(xiàn)方法

2.1 去除actionBar

閃屏頁面一般都為全屏顯示,這里我們首先需要去除actionBar,在res/values/styles.xml中設(shè)置:

android,handler實現(xiàn)倒計時,countdownview,倒計時

這里也建議大家在后期開發(fā)中盡量不要用死板的actionBar,可以根據(jù)項目需求使用ToolBar或者自定義TitleBar組件來替代actionBar,這樣的話界面設(shè)計會更加靈活。

2.2 layout布局

這里僅僅設(shè)置布局背景圖片,以及在右上角添加TextView用于顯示倒計時,做的有點糙,見諒,代碼如下:

<?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:id="@+id/activity_splash" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/background_login" tools:context="com.mly.panhouye.handlerdemo.SplashActivity"> <TextView android:gravity="right" android:id="@+id/tv_time" android:textColor="@color/colorAccent" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="SS" android:textSize="30sp"/></RelativeLayout>

2.3 java實現(xiàn)代碼

2.1中只是去除了app的ActionBar,要做的全屏顯示,仍需要在activity中使用代碼設(shè)置。

package com.mly.panhouye.handlerdemo;import android.content.Intent;import android.os.Bundle;import android.os.CountDownTimer;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Window;import android.view.WindowManager;import android.widget.TextView;public class SplashActivity extends AppCompatActivity { private MyHandler myHandler = new MyHandler(); private TextView tv_time; private MyCountDownTimer mc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //設(shè)置Activity為全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //去標題狀態(tài)欄 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_splash); tv_time = (TextView) findViewById(R.id.tv_time); mc = new MyCountDownTimer(5000, 1000); mc.start(); /** * 使用handler的postDelayed延遲5秒執(zhí)行頁面跳轉(zhuǎn) * (與CountDownTimer的millisInFuture一致) */ myHandler.postDelayed(new Runnable() { @Override public void run() { startMainActivity(); } },5000); } //將Handler聲明為靜態(tài)內(nèi)部類 private static class MyHandler extends Handler { @Override public void handleMessage(Message msg) { super.handleMessage(msg); } } //頁面跳轉(zhuǎn)的方法 private void startMainActivity(){ Intent intent = new Intent(this,Main3Activity.class); startActivity(intent); finish();//完成跳轉(zhuǎn)后銷毀閃屏頁(從棧內(nèi)移除) } class MyCountDownTimer extends CountDownTimer { /** * @param millisInFuture * 表示以毫秒為單位 倒計時的總數(shù) * 例如 millisInFuture=1000 表示1秒 * @param countDownInterval * 表示 間隔 多少微秒 調(diào)用一次 onTick 方法 * 例如: countDownInterval =1000 ; 表示每1000毫秒調(diào)用一次onTick() */ public MyCountDownTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } public void onFinish() { tv_time.setText("正在跳轉(zhuǎn)"); } public void onTick(long millisUntilFinished) { tv_time.setText("倒計時(" + millisUntilFinished / 1000 + ")"); Log.i("tag","倒計時"+millisUntilFinished / 1000); } } @Override protected void onDestroy() { super.onDestroy(); //閃屏頁銷毀時將消息對象從消息隊列移除并結(jié)束倒計時 myHandler.removeCallbacksAndMessages(null); mc.cancel(); Log.i("tag","destory"); }}

以上所述是小編給大家介紹的Android中使用Handler及Countdowntimer實現(xiàn)包含倒計時的閃屏頁面,希望對大家有所幫助!


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 会理县| 竹溪县| 兰西县| 休宁县| 黄平县| 永登县| 冷水江市| 云龙县| 茌平县| 肥东县| 磐安县| 桦南县| 同仁县| 涪陵区| 乳山市| 宜丰县| 左云县| 得荣县| 新巴尔虎右旗| 泾阳县| 安新县| 松阳县| 牡丹江市| 海安县| 广饶县| 板桥市| SHOW| 和静县| 苍溪县| 北碚区| 抚远县| 乌苏市| 普定县| 桃江县| 紫金县| 安泽县| 建始县| 察雅县| 长治市| 方山县| 元朗区|