Android 添加线性亮度,替换原来的不平滑亮度曲线
文章描述了AndroidSettingsLib框架中BrightnessUtils类的更新,主要涉及Gamma空间和线性空间之间的亮度值转换函数。新增了一个名为ENABLE_GAMMA的常量,用于控制是否启用Gamma转换。同时,修改了convertGammaToLinear和convertLinearToGammaFloat方法,当不启用Gamma时,提供了直接的线性转换逻辑。
第一种分别修改:
/frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java
新增两个转换方法:
//*/ .adjust as linear brightness solve hop change
public static final float convertGammaToLinearFloatExt(int val, float min, float max) {
final float normalizedVal = MathUtils.norm(0, GAMMA_SPACE_MAX, val);
float value = MathUtils.lerp(min, max, normalizedVal);
return value<0f? 1f:value;
}
public static final int convertLinearToGammaFloatExt(float val, float min, float max) {
// For some reason, HLG normalizes to the range [0, 12] rather than [0, 1]
final float normalizedVal = MathUtils.norm(min, max, val);
return Math.round(normalizedVal*GAMMA_SPACE_MAX);}
//*/
/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/display/BrightnessLevelPreferenceController.java
import static c