AndroidColor颜色过度计算实现代码

Android Color颜色过度计算实现代码

成都创新互联专注于丹阳企业网站建设,自适应网站建设,成都做商城网站。丹阳网站建设公司,为丹阳等地区提供建站服务。全流程按需开发网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

在看自定义TypeEvaluator来计算属性动画的属性值时,用到了对颜色的过度计算,翻看了好多博客,找到了比较有优秀的解决方案,在此记录,以备后用。

实现效果图:

Android Color颜色过度计算实现代码

实现代码:

/**
 * 根据fraction值来计算当前的颜色。
 */
private int getCurrentColor(float fraction, int startColor, int endColor) {
  int redCurrent;
  int blueCurrent;
  int greenCurrent;
  int alphaCurrent;

  int redStart = Color.red(startColor);
  int blueStart = Color.blue(startColor);
  int greenStart = Color.green(startColor);
  int alphaStart = Color.alpha(startColor);

  int redEnd = Color.red(endColor);
  int blueEnd = Color.blue(endColor);
  int greenEnd = Color.green(endColor);
  int alphaEnd = Color.alpha(endColor);

  int redDifference = redEnd - redStart;
  int blueDifference = blueEnd - blueStart;
  int greenDifference = greenEnd - greenStart;
  int alphaDifference = alphaEnd - alphaStart;

  redCurrent = (int) (redStart + fraction * redDifference);
  blueCurrent = (int) (blueStart + fraction * blueDifference);
  greenCurrent = (int) (greenStart + fraction * greenDifference);
  alphaCurrent = (int) (alphaStart + fraction * alphaDifference);

  return Color.argb(alphaCurrent, redCurrent, greenCurrent, blueCurrent);
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


本文标题:AndroidColor颜色过度计算实现代码
标题路径:http://scyanting.com/article/jioeei.html