package com.yuyh.library.view.viewpager.utils;
import android.graphics.Color;
/**
*
* @author试着飞
* @date 2014年11月1日
* @version 1.0
* 用于获取两个颜色的过渡色
*/
public class ColorGradient {
/** 开始的颜色 */
private int color1;
/** 结束的颜色 */
private int color2;
/** 开始的颜色到结束的颜色的过渡色分为几份 */
private int count;
/** 开始的颜色的a,r,g,b值 */
private int[] color1Values;
/** 结束的颜色的a,r,g,b值 */
private int[] color2Values;
public ColorGradient(int color1, int color2, int count) {
super();
this.color1 = color1;
this.color2 = color2;
this.count = count;
color1Values = toColorValue(color1);
color2Values = toColorValue(color2);
}
/**
* 获取第几个过渡色,总共分为count个过渡色,i表示去其中的第i个过渡色
*
* @param i
* @return
*/
public int getColor(int i) {
int[] result = new int[4];
for (int j = 0; j < color2Values.length; j++) {
result[j] = (int) (color1Values[j] + (color2Values[j] - color1Values[j]) * 1.0 / count * i);
}
return Color.argb(result[0], result[1], result[2], result[3]);
}
private int[] toColorValue(int color) {
int[] values = new int[4];
values[0] = Color.alpha(color);
values[1] = Color.red(color);
values[2] = Color.green(color);
values[3] = Color.blue(color);
return values;
}
public int getColor1() {
return color1;
}
public int getColor2() {
return color2;
}
public int getCount() {
return count;
}
}