android 登录界面渐变,Android实现颜色渐变启动页

###前言

在Android开发过程中,启动页是一个app打开的时候第一个映入我们眼帘的,它承载着太多东西,有给我们第一视觉的美感,有预加载数据的功能,对于任何一个app而言,启动页都是必不可少的一部分。那么今天我们就来讲一个实现启动页渐变的类:StartSreen。

今天涉及的内容:

1. 实现效果

2. StartSreen类介绍

3. 在Mainactivity中调用代码

4. 小窍门

5. 项目结构图

####一.实现效果

首先,介绍下实现的效果是,进入启动页后,界面颜色会在一个短的时间内从一个颜色逐渐变成另一个颜色,当完全变成另一个颜色以后,即实现了启动页效果。废话不多讲,下面贴出效果图。

![jk.gif](/contentImages/image/jianshu/6127340-ff7ad0cd548e2e87.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);方法必须是最后一个调用。

####五.项目结构图

![image.png](/contentImages/image/jianshu/6127340-15a3ce8a44a635fd.png)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值