2 つの色があり、ある色から別の色にすばやく切り替わるリアルタイム アニメーションを作成する必要があるとします。
もう一方の色に到達するまで 16 進数の色をインクリメントしようとしましたが、関係のない色がたくさん表示されたため、非常に悪いアニメーションになりました。
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);
}