示例代码采用 RxJava + RxLifecycle + Data-Binding 模式编写

示例图:

话不多说,实现方式如下:

1.导入依赖库

① RxJava: Reactive Extensions for the JVM

compile 'io.reactivex:rxjava:1.2.9'

compile 'io.reactivex:rxandroid:1.2.1'

② RxLifecycle

compile 'com.trello:rxlifecycle:1.0'

compile 'com.trello:rxlifecycle-components:1.0'

③ Data-Binding

dataBinding {

enabled = true

}

2.代码编写(关键代码)

① 自定义接口View

public interface BaseView {

LifecycleTransformer bindToLife();

}

② 创建一个Helper类,用来进行倒计时操作

public final class RxHelper {

private RxHelper() {

throw new AssertionError();

}

/**

* 倒计时

*/

public static Observable countdown(int time) {

if (time < 0) {

time = 0;

}

final int countTime = time;

return Observable.interval(0, 1, TimeUnit.SECONDS)

.map(new Func1() {

@Override

public Integer call(Long increaseTime) {

return countTime - increaseTime.intValue();

}

})

.take(countTime + 1)

.subscribeOn(Schedulers.io())

.unsubscribeOn(Schedulers.io())

.subscribeOn(AndroidSchedulers.mainThread())

.observeOn(AndroidSchedulers.mainThread());

}

}

③ 自定义方法:实现异步加载

private void init() {

RxHelper.countdown(5)

.compose(this.bindToLife())

.subscribe(new Subscriber() {

@Override

public void onCompleted() {

doSkip();

}

@Override

public void onError(Throwable e) {

doSkip();

}

@Override

public void onNext(Integer integer) {

mBinding.sbSkip.setText("跳过 " + integer);

}

});

}

④ 自定义方法:实现跳转

private void doSkip() {

if (!mIsSkip) {

mIsSkip = true;

finish();

startActivity(new Intent(SplashActivity.this, MainActivity.class));

overridePendingTransition(R.anim.hold, R.anim.zoom_in_exit);

}

}

⑤ 设置主题样式为全屏

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

true

关注我的新浪微博,请认准黄V认证,获取最新安卓开发资讯。

关注科技评论家,领略科技、创新、教育以及最大化人类智慧与想象力!

App启动页设计实例与技巧

App启动页,也称闪屏页,最初是为缓解用户等待Web/iOS/Android App数据加载的焦虑情绪而出现,后被设计师巧妙用于品牌文化展示,服务特色介绍以及功能界面熟悉等平台进行设计,被赋予了更加丰 ...

用代码获取APP启动页图片

用代码获取APP启动页图片 源码 - swift // // AppleSystemService.swift // Swift-Animations // // Created by YouXian ...

React-Native App启动页制作&lpar;安卓端&rpar;

android开发 时间倒计时的启动页,App启动页倒计时功能相关推荐

  1. Android开发:如何隐藏自己的app应用

    本文主要介绍如何通过修改AndroidManifest.xml清单文件来达到隐藏自身应用的目的,不是隐藏第三方应用,为了不浪费大家时间,特此说明. 转载请注明作者xiong_it和链接:http:// ...

  2. android隐藏app应用程序,Android开发:怎样隐藏自己的app应用

    本文主要介绍怎样通过改动AndroidManifest.xml清单文件来达到隐藏自身应用的目的,不是隐藏第三方应用.为了不浪费大家时间.特此说明. 第一种 改动Activity标签下的节点下的cate ...

  3. android 开发 时间选择器TimePicker的使用

    android 开发 时间选择器TimePicker的使用 android系统自带时间控件: DatePicker 日期显示控件  DatePickerDialog 日期对话框控件 TimePicke ...

  4. 动态头像 Android 实现,Android开发中实现一个头像滑动变大变小功能

    Android开发中实现一个头像滑动变大变小功能 发布时间:2020-11-21 16:36:20 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍Android开发中实现一个头像滑动变大 ...

  5. Android开发系列7——icon图标和开机启动页

    前言   Android开发App过程中,需要一个独特吸引眼球的应用icon,以及标新的Launch页面用于简明的介绍.为了适配各种 手机的尺寸和手机屏幕分辩率,需要同一张图片制作多种尺寸用于兼容各种 ...

  6. android应用白屏闪退,解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  7. Android开发笔记(十八)书籍翻页动画PageAnimation

    前面几节的动画都算简单,本文就介绍一个复杂点的动画--书籍翻页动画.Android有自带的翻页动画ViewPager,不过ViewPager只实现了平移效果.即便使用补间组合动画或者属性动画,也只是把 ...

  8. android 加载动画素材,八种APP启动界面的Loading进度条设计动效方案

    在移动端APP应用中,从用户点击图标那一瞬间到用户进入主界面这段过程,同样也决定用户对该APP应用的第一印象,如何让用户产生好感并快速熟悉应用是这一阶段重点考虑的问题.这一过程是否给用户留下好的第一饮 ...

  9. 【Android开发那点破事】打开APP加载页面实现

    今天的破事呢就说说APP加载页面的实现.一般情况下,当APP打开的时候,我们需要做很多事情,比如检查网络连接啊,初始化一些配置啊等等.我们可以让这些事情在APP完全打开之前做完,然后呢在打开的过程中显 ...

最新文章

  1. VMware workstation中rhel安装VMware tools失败
  2. 搭建linux下eclipse php完美搭建开发php,搭建linux上的Eclipse+PHP编程环境
  3. 数据增删改查之三层架构(理解三层续)
  4. fastadmin弹框提示不起作用 confirm
  5. 【编程】二叉树的先序、中序、后序遍历
  6. 熬夜肝完这份Framework笔记,已拿到offer
  7. 【JAVA基础篇】IO流
  8. 怎样高效实现增长?这里有50个经典的增长黑客策略
  9. Web前端和后端的区别是什么?如何区分?
  10. 别说你不知IE9正式版浏览器小技巧9则
  11. 双向重定向指令 tee
  12. PyTorch:tensor-数据处理
  13. 重装opencv3.2.0后catkin_make遇到问题-解决方案
  14. 【火灾检测】基于matlab图像特征火灾检测【含Matlab源码 897期】
  15. perl语言hello world程序
  16. g++编译时对'xxxx'未定义的引用问题(undefined reference to)
  17. ***WIN2003 PHP服务器的另类技术
  18. Linux系统常见的发行版本以及区别!
  19. Python PDF转JPG
  20. Web 前端开发技术 ——html

热门文章

  1. 计算机丢失wpcap.dll会影响什么,win7系统wpcap.dll丢失的三种修复方法
  2. 彩色版的C语言,让文字更漂亮
  3. python爬虫正则匹配td标签中的内容,以及一些常用的正则
  4. Linux(Centos7)安装oracle12c
  5. 如何使用Python实现图像融合及加法运算
  6. Linux入门:内存测试工具(Memtest86+)
  7. Morgan Stanley
  8. Netty,Nginx严重落后;网络IO框架最新性能排名
  9. 忘记Grafana 密码怎么办 教你2种Grafana重置admin密码方法详细步骤
  10. 带恒温冷藏功能的便携式自动采样器——可用于毒情监测