android 酷炫启动页,RxJava实践之打造酷炫启动页
原文发布于我的博客Android猿
之前注意到coding APP启动页很是酷炫,今天我们使用RxJava和属性动画模仿实现其效果。
ezgif.com-video-to-gif(2).gif
一、新建启动页WelcomeActivity
注意,我们这里让WelcomeActivity继承Activity不要继承AppCompatActivity,因为AppCompatActivity会默认去加载主题,造成卡顿
public class WelcomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
}
二、定义引导页布局activity_welcome.xml
不多说直接上代码:
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/iv_entry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/welcomimg1"/>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/welcomimg_bg"/>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="100dp"
android:gravity="center"
android:text="xialong"
android:textColor="@android:color/white"
android:textSize="23sp"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/google_logo"
android:layout_alignParentBottom="true"
android:layout_marginBottom="60dp"
android:layout_centerInParent="true"
android:tint="@android:color/white" />
这里我们用了相对布局,在ImageView上覆盖一个View,该View用渐变色背景welcomimg_bg.xml以暗化图片,welcomimg_bg.xml代码如下:
android:angle="90"
android:startColor="@color/black"
android:endColor="@android:color/transparent"
/>
其中startColor表示起始颜色,endColor表示结束颜色,angle=90 表示颜色从下往上渐变。
三、随机选取图片并使用RxJava启动动画
最后我们的WelcomeActivity.java长这样:
public class WelcomeActivity extends Activity {
@Bind(R.id.iv_entry)
ImageView mIVEntry;
private static final int ANIM_TIME = 2000;
private static final float SCALE_END = 1.15F;
private static final int[] Imgs={
R.drawable.welcomimg1,R.drawable.welcomimg2,
R.drawable.welcomimg3,R.drawable.welcomimg4,
R.drawable.welcomimg5, R.drawable.welcomimg6,
R.drawable.welcomimg7,R.drawable.welcomimg8,
R.drawable.welcomimg9,R.drawable.welcomimg10,
R.drawable.welcomimg11,R.drawable.welcomimg12,};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
ButterKnife.bind(this);
Random random = new Random(SystemClock.elapsedRealtime());//SystemClock.elapsedRealtime() 从开机到现在的毫秒数(手机睡眠(sleep)的时间也包括在内)
mIVEntry.setImageResource(Imgs[random.nextInt(Imgs.length)]);
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1()
{
@Override
public void call(Long aLong)
{
startAnim();
}
});
}
private void startAnim() {
ObjectAnimator animatorX = ObjectAnimator.ofFloat(mIVEntry, "scaleX", 1f, SCALE_END);
ObjectAnimator animatorY = ObjectAnimator.ofFloat(mIVEntry, "scaleY", 1f, SCALE_END);
AnimatorSet set = new AnimatorSet();
set.setDuration(ANIM_TIME).play(animatorX).with(animatorY);
set.start();
set.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
startActivity(new Intent(WelcomeActivity.this, MainActivity.class));
WelcomeActivity.this.finish();
}
});
}
}
这里的RxJava使用了timer操作符,它的意思是延迟执行某个操作,第一个参数表示延迟时间,第二个参数是时间单位。
好了,就酱。
需要完整代码可以戳这里代码传送门
android 酷炫启动页,RxJava实践之打造酷炫启动页相关推荐
- 炫 音乐可视化 html5 在线,HTML5打造的炫酷本地音乐播放器-喵喵Player
将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...
- 超炫计算机课件ppt,5分钟打造高级炫酷的PPT系列第一季-斧子演示视频教程
第1章 开天需有利斧 1小时36分钟10节 1-1 先看看效果 这是用斧子演示编程的一个演示文档,并且是利用它自己的导出视频功能导出的演示视频. [01:20] 开始学习 1-2 斧子演示的下载.安装 ...
- u盘启动linux3.0,5分钟打造U盘启动的Ubuntu (3篇)
想拥有一个可以随身携带的操作系统?你可以考虑将它安装到U盘驱动器上.很早开始在USB磁盘上运行Linux发行版已经成为可能的,只是这个制作过程嘛,有点麻烦.为什么?因为那意味着你需要在命令行中敲一大堆 ...
- 优酷鸿蒙开发实践|优酷 Android 与HarmonyOS Hap 混合打包
在<优酷鸿蒙开发实践|鸿蒙卡片开发>一文中已经提到,要实现"在优酷主客ICON向上滑动,呼出优酷鸿蒙卡片",需要卡片的实现代码与优酷主客做混合打包.下面的小节简单介绍了 ...
- Android矢量图动画特效,Android使用SVG矢量图打造酷炫动画效果
一个真正Android使用SVG矢量图打造酷炫动效往往让人虎躯一震,话不多说,咱们先看看效果: 这个效果我们需要考虑以下几个问题: 1. 这是图片还是文字: 2. 如果是图片该如何拿到图形的边沿线坐标 ...
- 【Electron】酷家乐客户端开发实践分享 — 浏览器启动客户端
作者:钟离,酷家乐PC客户端负责人 原文地址:webfe.kujiale.com/browser-to-- 酷家乐客户端:下载地址 www.kujiale.com/activity/13- 文章背景: ...
- Android CoordinatorLayout打造酷炫的顶部栏
CoordinatorLayout常常与AppBarLayout和CollapsingToolbarLayout一起使用,用于打造各种炫酷效果的顶部栏.之前写过一篇Android 实现酷炫的顶部栏,不 ...
- Vue.js 打造酷炫的可视化数据大屏
可视化技术与 Vue 介绍 实验介绍 在本节实验中,将对可视化技术的应用场景.发展历程进行介绍,让大家对可视化技术有一个基础的概念.随后将介绍如今流行的可视化框架与其之间的优缺点对比.最后介绍 Vue ...
- android listview 导航条,Android侧边导航栏+ListView基础实践
Android基础项目实践 文章首发于自己的github博客,https://lemonjuice98.github.io/ 本学期学习了Android的开发课程,期末也做了一款很萌新向的App作为课 ...
最新文章
- windows form窗体应用程序,建一个记事本参考代码,重点是打开,保存,另存为...
- matplotlib画图绘制辅助线
- Spring Cloud Alibaba:Sentinel 熔断降级
- C/C++:各类型变量占用字节
- URL Safe base64 与 base64相互转换
- mybatis-plus超详细讲解
- python控制台小游戏代码_python小游戏实现代码
- python学习第六天运算符总结大全
- 计算机科学概论第12版中文版
- MASM5.0下载安装与运行第一个HelloWorld
- 二十三又是谁的二十三
- LaTeX简历模版,自己瞎做的,请多指教
- 区块链四:共识机制——PBFT算法深入讲解
- eclipse配色方案
- 杨辉三角 SDUT
- 主观意义上第一个基于DEFI的DAM平台DIPPER,年关崛起的黑马究竟是否能在新年创造区块链新纪元?而DIPPER的意义和价值又是什么?
- ZOHO 免费小型企业邮箱和个人邮箱
- vim 使用set paste 解决多行复制粘贴乱序问题
- BOSS直聘直直4周岁生日会圆满举办
- 基于ssm流浪猫狗|流浪狗宠物救助网站
热门文章
- 手把手做一个JSP入门程序(一):程序基本介绍(JSP)
- 怎样学习计算机语言?
- Halide:简化图像编程
- 【地理信息系统GIS专业的10个发展方向:】
- 【Matlab】imresize的用法
- 培训班和科班出来的程序员有什么不同之处?
- jdk、openjdk、jre、jvm、jep、jar、jmod
- 读论文|利用GAN生成三维点云WarpingGAN: Warping Multiple Uniform Priors for Adversarial 3D Point Cloud Generation
- JavaScript 数组头部、尾部进行增删元素
- Java的IO流 ,BIO NIO AIO 的区别?