Android实现颜色渐变启动页
前言
在Android开发过程中,启动页是一个app打开的时候第一个映入我们眼帘的,它承载着太多东西,有给我们第一视觉的美感,有预加载数据的功能,对于任何一个app而言,启动页都是必不可少的一部分。那么今天我们就来讲一个实现启动页渐变的类:StartSreen。
今天涉及的内容:
- 实现效果
- StartSreen类介绍
- 在Mainactivity中调用代码
- 小窍门
注意:大家可以在 Demo大师 上关注 “奔跑的佩恩”,搜索文章《Android实现颜色渐变启动页》下载对应demo
一.实现效果
首先,介绍下实现的效果是,进入启动页后,界面颜色会在一个短的时间内从一个颜色逐渐变成另一个颜色,当完全变成另一个颜色以后,即实现了启动页效果。废话不多讲,下面贴出效果图。
jk.gif
二.StartSreen类介绍
StartSreen,顾名思义,启动页面。
StartSreen包含以下几个方法:
2.1 初始化
//初始化
/**
* @param startColor 八位或六位色值,如:"#F3D266" 或 "#FFF3D266"
* @param endColor 八位或六位色值,如:"#FFFFFF" 或 "#FFFFFFFF"
*/
public StartScreen(String startColor,String endColor);
StartScreen初始化的时候,需要传入两个色值,startColor 和 endColor,分别表示 启动页 开始的色值和渐变以后的最终色值。这两个参数均为String类型,且色值必须是八位或六位色值,如:"#F3D266" 或 "#FFF3D266"
2.2 设置颜色变化时间总长(单位毫秒)
//设置颜色变化时间总长(单位毫秒)
setDelayTime(long delayTime);
此方法是设置界面颜色由 startColor 变到 endColor 所花的时间,单位是毫秒
2.3 获取颜色变化时间总长(单位毫秒)
getDelayTime();
获取颜色变化总长时间,单位毫秒,默认值是1500,即1.5秒
2.4 设置颜色渐变频率(单位毫秒)
//设置颜色渐变频率(单位毫秒)
setChangeTime(long changeTime)
简单来讲就是用来设置颜色变化的速度,单位是毫秒。
2.5 获取颜色渐变频率(单位毫秒)
getChangeTime();
单位毫秒,默认变化粒度为10毫秒
2.6 执行渐变的方法
start(final View view, final OnFinishListener listener);
参数介绍如下:
view:要实行颜色渐变的控件
listener:渐变结束的回调
三. 在Mainactivity中调用代码
下面贴出StartSreen在MainActivity中的使用代码
public class MainActivity extends BaseActivity {
@Override
public int getContentViewId() {
return R.layout.activity_main;
}
@Override
public void initData() {
//启动
startApp();
}
@Override
public void setListener() {
}
/**启动**/
private void startApp() {
//#F3D266
new StartScreen("#FFFFFF", "#FF69B4").start(mLayoutView, new StartScreen.OnFinishListener() {
@Override
public void onFinish() {
showShort("启动页加载完毕");
}
});
}
}
以上代码中的mLayoutView即为MainActivity的布局控件,即为渐变整个屏幕的“背景”。
四.小窍门
值得注意的是,StartScreen支持链式调用,如果你要在执行渐变效果的同时需要设置渐变参数,你可以这样调用:
new StartScreen("#FFFFFF", "#FF69B4")//设置渐变起止色值
.setDelayTime(2000)//设置渐变总时长
.setChangeTime(30)//设置渐变频率
//执行渐变效果
.start(mLayoutView, new StartScreen.OnFinishListener() {
@Override
public void onFinish() {
showShort("启动页加载完毕");
}
});
需要注意的是,在链式调用过程中,start(final View view, final OnFinishListener listener);方法必须是最后一个调用。
ok,今天就讲到这里了,谢谢大家。
`