AndroidAndroidAndroid开发

Android实现颜色渐变启动页

2019-03-22  本文已影响469人  奔跑的佩恩

前言

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

今天涉及的内容:

  1. 实现效果
  2. StartSreen类介绍
  3. 在Mainactivity中调用代码
  4. 小窍门

注意:大家可以在 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,今天就讲到这里了,谢谢大家。

`

上一篇下一篇

猜你喜欢

热点阅读