需求是将折线图中的线做成渐变的,渐变效果要求从Y轴的最小值往最大值渐变。
找了点MPAndroidChart的资料,知道了LineDataSet提供了setGradientColor方法,尝试往这个方法里传了渐变的颜色值,但是没有效果,看了一下实现线条的类LineChartRenderer的源码,里面没有取传入的mGradientColor,既然源码没取,那就重写这个类,在需要画线条前将渐变色配置进去吧,以下是代码:
if (dataSet.getGradientColor() != null) {
GradientColor gradientColor = dataSet.getGradientColor();
// LinearGradient的前四个参数是用于设置渐变方向的
// 下面这样设置就是从Y轴最小值往Y轴最大值渐变
mRenderPaint.setShader(new LinearGradient(
0,
0,
0,
mChart.getHeight(),
gradientColor.getStartColor(),
gradientColor.getEndColor(),
Shader.TileMode.CLAMP
));
}
// 如果传入了渐变色,都在这一行前配置渐变色
mBitmapCanvas.drawPath(cubicPath, mRenderPaint);
线条的实现方式有三个方法,分别是drawLinear,drawCubicBezier,drawHorizontalBezier,看你具体需要使用到哪个,就在哪个里面画线前加上配置渐变的逻辑。
本文暂时没有评论,来添加一个吧(●'◡'●)