今天在做滑动seekbar修改图片属性的时候,发现书上的demo对hue的取值做了特殊的计算。
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
switch (seekBar.getId()) {
case R.id.seekbarHue:
mHue = (progress - MID_VALUE) * 1.0F / MID_VALUE * 180; // -180 - 0 - 180 测试为色调的一个周期,也就是说色调的取值范围为-180~180
break;
case R.id.seekbarSaturation:
mSaturation =progress * 1.0F / MID_VALUE; // 0 - 1 - 2
break;
case R.id.seekbarLum:
mLum = progress * 1.0F / MID_VALUE; // 0 - 1 - 2
break;
}
mImageView.setImageBitmap(ImageHelper.handleImageEffect(bitmap, mHue, mSaturation, mLum));
}
在书中
hue的取值范围为-180~180,当取值为0时,色调为原色调,每隔360为一个色调周期。
saturation饱和度的取值范围为0~2,当取值为0时,全灰,饱和度随向上取值增大而增大(超过2)。
lum亮度的取值范围为0~2,当取值为0时,全黑,亮度随向上取值增大而增大(超过2)。