我为自定义LinearGradient
实施了垂直View
。它在大多数设备上运行良好,但是我们注意到在运行Android 4.1.2的Galaxy Note 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);
有人可以指点我的方向吗?
谢谢!
答案 0 :(得分:1)
我终于找到了解决方案。
似乎Android 4.1.2上的LinearGradient
类有一种奇怪的处理百分比的方法。
如果百分比没有至少一个值等于1f
,则颜色插值似乎不起作用。
为了解决这个问题,我确保percentages[]
的最后一个值设置为1f
,mColors[]
和percentages[]
的长度相同正确地工作。