diff --git a/libs/hwui/Interpolator.cpp b/libs/hwui/Interpolator.cpp index cc47f0052b731..bddb01b97865a 100644 --- a/libs/hwui/Interpolator.cpp +++ b/libs/hwui/Interpolator.cpp @@ -97,7 +97,8 @@ LUTInterpolator::~LUTInterpolator() { } float LUTInterpolator::interpolate(float input) { - float lutpos = input * mSize; + // lut position should only be at the end of the table when input is 1f. + float lutpos = input * (mSize - 1); if (lutpos >= (mSize - 1)) { return mValues[mSize - 1]; } diff --git a/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java b/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java index 0f39e8042883f..ffce1a0496d97 100644 --- a/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java +++ b/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java @@ -104,7 +104,7 @@ public class NativeInterpolatorFactoryHelper_Delegate { @Override public float getInterpolation(float input) { - float lutpos = input * mSize; + float lutpos = input * (mSize - 1); if (lutpos >= (mSize - 1)) { return mValues[mSize - 1]; }