在tab切换界面时,经常每个界面都会有一种主题颜色,这时,如果生硬的直接替换颜色,体验会比较差,所以这里记录一下颜色渐变的两种方式(还有其他方式欢迎补充)。
方式1:
将ARGB颜色拆分,获取颜色值,然后根据渐变程度计算当前的颜色,代码如下:
/** * 根据其实颜色和渐变程度获取当前渐变色 * @param fraction 当前分值 0~1 * @param startColor 起始颜色 * @param endColor 结束颜色 */ private fun getCurrentColor(fraction: Float, startColor: Int, endColor: Int): Int { val redCurrent: Int val blueCurrent: Int val greenCurrent: Int val alphaCurrent: Int val redStart = Color.red(startColor) val blueStart = Color.blue(startColor) val greenStart = Color.green(startColor) val alphaStart = Color.alpha(startColor) val redEnd = Color.red(endColor) val blueEnd = Color.blue(endColor) val greenEnd = Color.green(endColor) val alphaEnd = Color.alpha(endColor) val redDifference = redEnd - redStart val blueDifference = blueEnd - blueSt