美文网首页
给一个初始颜色,一个目标颜色。计算中间变换的颜色

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

作者: ben大福 | 来源:发表于2017-03-22 14:15 被阅读56次

    直接上核心代码,根据初始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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/hckonttx.html