给一个初始颜色,一个目标颜色。计算中间变换的颜色

2017-03-22  本文已影响56人  ben大福

直接上核心代码,根据初始Color的颜色值和终止的颜色值,还有颜色偏移量(0<=floatfraction<1)

public int get CurrentColor(int startColor,int endColor,float fraction) {

int startr = (startColor &0x00ff0000) >>>16;

int startg = (startColor &0x0000ff00) >>>8;

int startb = (startColor &0x000000ff);

int endr = (endColor &0x00ff0000) >>>16;

int endg = (endColor &0x0000ff00) >>>8;

int endb = (endColor &0x000000ff);

int diffr = endr - startr;

int diffg = endg - startg;

int diffb = endb - startb;

int currentr, currentg, currentb;

currentr = (int) (startr + diffr * fraction);

currentg = (int) (startg + diffg * fraction);

currentb = (int) (startb + diffb * fraction);

return  0xff000000+ (currentr <<16) + (currentg <<8) + currentb;

}

解释:将颜色值红绿蓝提取出来。计算色差。然后根据偏移量让startColor加上颜色偏移量。既得出最终的颜色

下面是我用这个api写的一个demo

上一篇下一篇

猜你喜欢

热点阅读