一、布局实现(使用 FrameLayout 悬浮在广告的右上角,显示倒计时的 TextView 的宽高尽量不要写死,要考虑字体很多的情况!!)
    "@+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 用系统 shape 实现,不需要 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);    }
四、倒计时实现(使用 Android 系统原生的倒计时控件 CountDownTimer 实现)
    class MyCountDownTimer extends CountDownTimer {        /**         * @param millisInFuture         *      表示以「 毫秒 」为单位倒计时的总数         *      例如 millisInFuture = 1000 表示1秒         *         * @param countDownInterval         *      表示 间隔 多少微秒 调用一次 onTick()         *      例如: countDownInterval = 1000 ; 表示每 1000 毫秒调用一次 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 跳过");        }    }
五、根据具体的业务逻辑完整实现
    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 跳过");            //创建倒计时类            mCountDownTimer = new MyCountDownTimer(3000, 1000);            mCountDownTimer.start();            //这是一个 Handler 里面的逻辑是从 Splash 界面跳转到 Main 界面,这里的逻辑每个公司基本上一致            tmpHandler.postDelayed(runnable, 3000);        } else {            mCountDownTextView.setText("1s 跳过");            mCountDownTimer = new MyCountDownTimer(1000, 1000);            mCountDownTimer.start();            tmpHandler.postDelayed(runnable, 1000);        }    }
六、注意事项(一定记得在界面销毁的时候将 CountDownTimer 销毁)
    @Override    protected void onDestroy() {        if (mCountDownTimer != null) {            mCountDownTimer.cancel();        }        super.onDestroy();    }

更多相关文章

  1. Intellij IDEA开发第一个android应用教程
  2. Android通知栏点击无法启动Activity的问题
  3. Android用代码测试Activity的生命周期
  4. 自定义Spinner下拉列表
  5. android Service中启动Dialog
  6. Android中Activity的android:windowSoftInputMode属性
  7. android之DecorView
  8. Android(安卓)定时让popupwindow消失
  9. (转)EditText 焦点控制,进入界面时不弹出键盘

随机推荐

  1. Android(安卓)studio怎么使用eclipse的快
  2. android 版本号适配 9.0网络请求方法
  3. (Android(安卓)Studio)添加按钮以及权重问
  4. android 上传应用商店时出现ERROR gettin
  5. 详解Android(安卓)检测权限的三种写法
  6. 【proguard混淆】Android(安卓)Gson混淆
  7. Android(安卓)4.4源码编译过程
  8. 阿里知识储备之二——junit学习以及andro
  9. android性能测试工具之dumpsys
  10. 关闭应用的4种方法