凯哥,这行代码有点问题吧。如果我没记错的话,减法的优先级是高于右移运算符的,这样这句代码 endValue >> 24 - startValue >> 24计算的完全是不对的 int alpha = startValue >> 24 + (int) ((endValue >> 24 - startValue >> 24) * fraction);