假设我有两种颜色,我需要创建一个可以快速从一种颜色切换到另一种颜色的实时动画。
我试图只是增加颜色十六进制直到我到达另一个,但这给出了一个非常糟糕的动画,因为它显示了许多不相关的颜色。
我正在使用setColorFilter(color, colorfilter)
更改图像视图的颜色。
改变 HUE 会给我最好的视觉效果吗?如果是这样,我怎样才能将其更改为纯色?
解决方案:我通过递归变换色调来解决它
private int hueChange(int c,int deg){
float[] hsv = new float[3]; //array to store HSV values
Color.colorToHSV(c,hsv); //get original HSV values of pixel
hsv[0]=hsv[0]+deg; //add the shift to the HUE of HSV array
hsv[0]=hsv[0]%360; //confines hue to values:[0,360]
return Color.HSVToColor(Color.alpha(c),hsv);
}