0
MAX_PROGRESS
は100ですが、これは進度の色に基づいて計算することができますが、今はprogress
を計算する必要があります。そのようなアルゴリズムはありますか?パーセントに基づいて色を計算する方法は?
private int calculateColor(int progress) {
float unit = (float) progress/MAX_PROGRESS;
if (unit < 0) {
unit += 1;
}
if (unit <= 0) {
return mGradientColors[0];
}
if (unit >= 1) {
return mGradientColors[mGradientColors.length - 1];
}
float p = unit * (mGradientColors.length - 1);
int i = (int) p;
p -= i;
int c0 = mGradientColors[i];
int c1 = mGradientColors[i + 1];
int a = ave(Color.alpha(c0), Color.alpha(c1), p);
int r = ave(Color.red(c0), Color.red(c1), p);
int g = ave(Color.green(c0), Color.green(c1), p);
int b = ave(Color.blue(c0), Color.blue(c1), p);
return Color.argb(a, r, g, b);
}
そうは思わない。 – Denny
問題点は何ですか? –
私はパレットのシークバーをやっています、私は色に応じて対応する進捗状況にスクロールする必要があります。 – dengyuhan