编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

用MPAndroidChart生成渐变的折线图

wxchong 2024-07-07 00:19:38 开源技术 12 ℃ 0 评论

需求是将折线图中的线做成渐变的,渐变效果要求从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,看你具体需要使用到哪个,就在哪个里面画线前加上配置渐变的逻辑。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表