关键字:没有关键字
项目地址:AboutMaterialDesign
说明:其实和 Material Design 没关系,API 11 以上就可以完美使用,一点不带卡顿
一、从官网说起
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 定时赋值。