Android LinearGradient 颜色插值器在 Android 4.1.2 上不起作用

Android LinearGradient color interpolator doesn't work on Android 4.1.2

我已经为自定义 View 实现了垂直 LinearGradient。它在大多数设备上运行良好,但我们注意到在 Galaxy Note 2 运行 Android 4.1.2 上,渐变在颜色之间过渡不平滑(颜色插值),但每种颜色只是在某个时候开始。

我正在像这样构造渐变

    ViewCompat.setLayerPaint(myView, null);
    Paint paint = myView.getPaintRender();
    paint.setDither(true);

    int height = myView.getHeight();

    // create a gradient background paint which will be later on clipped
    mColors = generateColorsRage(myDTOProvidingData);
    float[] percentages = generateColorPercentages();

    LinearGradient linearGradient = new LinearGradient(0, 0, 0, height, mColors, percentages, Shader.TileMode.CLAMP);

    paint.setShader(linearGradient);

谁能给我指明方向?

谢谢!

我终于找到了解决方案。 Android 4.1.2 上的 LinearGradient class 似乎有一种奇怪的处理百分比的方式。 如果百分比没有至少一个等于 1f.

的值,颜色插值似乎不起作用

所以为了解决这个问题,我确保 percentages[] 的最后一个值设置为 1f 并且 mColors[]percentages[] 的长度顺序相同这样才能正常工作。