Material Design - 背景颜色渐变效果

作者: Arnold_J | 来源:发表于2017-09-30 12:36 被阅读0次

关键字:没有关键字
项目地址:AboutMaterialDesign
说明:其实和 Material Design 没关系,API 11 以上就可以完美使用,一点不带卡顿


效果展示

一、从官网说起

ArgbEvaluator

Return Type Desciption
Object evaluate(float fraction, Object startValue, Object endValue)

没了。

不如还是来看看怎么用吧。

二、简单使用,并没有高级

先看这个唯一的方法的方法介绍:
This function returns the calculated in-between value for a color given integers that represent the start and end values in the four bytes of the 32-bit int.

简单的说,startValue 和 endValue 是两个 Integer 类型的 Color 值,fraction 在 0 -1 之间,方法能通过这个值返回两个颜色之间的过渡色,想达到上面的渐变效果,只要在一定时间间隔,计算出渐变色彩并分别赋值给背景就可以了。

开篇的效果是利用 ViewPager 的监听做的,监听中会返回指定的 positionOffset 值,如下:

private class PagerChangeListener implements ViewPager.OnPageChangeListener{

    private int[] colors = {Color.parseColor("#e16428"),Color.parseColor("#ffbc2c"),
            Color.parseColor("#86b86b"),Color.parseColor("#878ecd"),Color.parseColor("#9a9b94"),};

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        if (positionOffset == 0) {
            return;
        }

        //得到 颜色 估值器
        ArgbEvaluator evaluator = new ArgbEvaluator();
        //根据positionOffset得到渐变色
        int evaluate = (int) evaluator.evaluate(positionOffset,colors[position],colors[position+1]);
        mContainer.setBackgroundColor(evaluate);
    }

    //...some other method
}

如果是一般的 View 则需要自己进行计算了,例如利用 CountDownTimer 定时赋值。


谢谢观赏

相关文章

网友评论

    本文标题:Material Design - 背景颜色渐变效果

    本文链接:https://www.haomeiwen.com/subject/tzpgextx.html