Android開屏頁倒計時功能實現(xiàn)的詳細(xì)教程
最近我司產(chǎn)品提出了一個很常見的需求:App 在開屏頁(Splash 界面) 需要加上一個 3s 倒計時按鈕,可以選擇看 3s 的廣告,或者點擊按鈕跳過廣告。
一、布局實現(xiàn)(使用 FrameLayout 懸浮在廣告的右上角,顯示倒計時的 TextView 的寬高盡量不要寫死,要考慮字體很多的情況!!)
<FrameLayout android:id="@+id/start_skip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true"> <TextView android:id="@+id/start_skip_count_down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/default_padding" android:text="@string/click_to_skip" android:gravity="center" android:background="@drawable/bg_start_page_circle" android:textColor="@android:color/white" android:textSize="14sp" /> </FrameLayout>
二、TextView 背景的 @drawable/bg_start_page_circle 用系統(tǒng) shape 實現(xiàn),不需要 UI 幫我們切圖
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#80000000"/> <padding android:bottom="3dp" android:left="8dp" android:right="8dp" android:top="3dp"/> <corners android:bottomLeftRadius="45dp" android:bottomRightRadius="45dp" android:topLeftRadius="45dp" android:topRightRadius="45dp"/> </shape>
三、在 onCreate() 里面找到顯示倒計時的 TextView
private TextView mCountDownTextView; /** * Created by KeithXiaoY on 2017/06/07. */ @Override public void onCreate(Bundle savedInstanceState) { mCountDownTextView = (TextView) findViewById(R.id.start_skip_count_down); }
四、倒計時實現(xiàn)(使用 Android 系統(tǒng)原生的倒計時控件 CountDownTimer 實現(xiàn))
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() { mCountDownTextView.setText("0s 跳過"); } public void onTick(long millisUntilFinished) { mCountDownTextView.setText( millisUntilFinished / 1000 + "s 跳過"); } }
五、根據(jù)具體的業(yè)務(wù)邏輯完整實現(xiàn)
private TextView mCountDownTextView; private MyCountDownTimer mCountDownTimer; /** * Created by KeithXiaoY on 2017/06/07. */ @Override public void onCreate(Bundle savedInstanceState) { ... mCountDownTextView = (TextView) findViewById(R.id.start_skip_count_down); //我司需求,在沒有 Banner 廣告的時候一秒跳過開屏頁,有 Banner 廣告的時候三秒跳過 if (PreferencesFactory.getCommonPref().getBoolean(CommonPreferences.PREFS_HAS_START_PAGE_BANNER, false)) { mCountDownTextView.setText("3s 跳過"); //創(chuàng)建倒計時類 mCountDownTimer = new MyCountDownTimer(3000, 1000); mCountDownTimer.start(); //這是一個 Handler 里面的邏輯是從 Splash 界面跳轉(zhuǎn)到 Main 界面,這里的邏輯每個公司基本上一致 tmpHandler.postDelayed(runnable, 3000); } else { mCountDownTextView.setText("1s 跳過"); mCountDownTimer = new MyCountDownTimer(1000, 1000); mCountDownTimer.start(); tmpHandler.postDelayed(runnable, 1000); } }
六、注意事項(一定記得在界面銷毀的時候?qū)?CountDownTimer 銷毀)
@Override protected void onDestroy() { if (mCountDownTimer != null) { mCountDownTimer.cancel(); } super.onDestroy(); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android 逆向?qū)W習(xí)詳解及實例
- 使用android-apktool來逆向(反編譯)APK包方法介紹
- 通過FancyView提供 Android 酷炫的開屏動畫實例代碼
- Android仿知乎日報開屏頁效果
- Android 監(jiān)聽鎖屏、解鎖、開屏 功能代碼
- Android實現(xiàn)加載廣告圖片和倒計時的開屏布局
- Android使用ViewPager實現(xiàn)滾動廣告
- Android實現(xiàn)自適應(yīng)屏幕的彈窗廣告
- Android Viewpager實現(xiàn)輪播廣告圖
- Android 知乎廣告效果實現(xiàn)代碼
- Android逆向技巧——去除開屏廣告
相關(guān)文章
詳解Android Service與Activity之間通信的幾種方式
這篇文章主要介紹了詳解Android Service與Activity之間通信的幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04學(xué)習(xí)Android Material Design(RecyclerView代替ListView)
Android Material Design越來越流行,以前很常用的 ListView 現(xiàn)在也用RecyclerView代替了,實現(xiàn)原理還是相似的,感興趣的小伙伴們可以參考一下2016-01-01AndroidStudio實現(xiàn)微信界面設(shè)計
這篇文章帶你通過Androidstudio來實現(xiàn)微信的基礎(chǔ)界面,微信的界面主要包含了主頁、通訊錄、發(fā)現(xiàn)以及我的賬號功能區(qū),下文包含了整個開發(fā)過程,以及解決該問題的過程及思路并提供了源碼2021-10-10Android 6.0權(quán)限請求相關(guān)及權(quán)限分組方法
今天小編就為大家分享一篇Android 6.0權(quán)限請求相關(guān)及權(quán)限分組方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Android點擊WebView實現(xiàn)圖片縮放及滑動瀏覽效果
這篇文章主要為大家詳細(xì)介紹了Android點擊WebView實現(xiàn)圖片縮放及滑動瀏覽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android編程開發(fā)之EditText實現(xiàn)輸入QQ表情圖像的方法
這篇文章主要介紹了Android編程開發(fā)之EditText實現(xiàn)輸入QQ表情圖像的方法,涉及Android多媒體文件及EditText的相關(guān)操作技巧,需要的朋友可以參考下2015-12-12