美文网首页
Android中使用MPAndroidChart绘制横向圆角柱状

Android中使用MPAndroidChart绘制横向圆角柱状

作者: 种花家的兔拉邦 | 来源:发表于2020-10-22 17:49 被阅读0次

在最近的项目中,需要实现横向柱状图的圆角样式,如图:

img

而MPAndroidChart默认是矩形,所以参考了另一篇博客,在源码里面做如下修改:

  • 找到HorizontalBarChartRenderer这个类,定位到如下代码:

    c.drawRect(buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],
                        buffer.buffer[j + 3], mRenderPaint);
    
  • 将此处修改为:

    RectF rectF=new RectF(buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],buffer.buffer[j + 3]);
    
    c.drawRoundRect(rectF,(float)25,(float)25,mRenderPaint);
    

    这样,就可以实现圆角矩形的绘制了。

  • 但是,如果想要自定义四个角的弧度,就需要使用Path类绘制。做以下修改:

    RectF rectF=new RectF(buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],buffer.buffer[j + 3]);
    
    Path path = new Path();
    //float数组中4个角分别是左上、右上、右下、左下
    path.addRoundRect(rectF,new float[]{0, 0, 20, 20, 20, 20, 0, 0},Path.Direction.CCW);
    c.drawPath(path,mRenderPaint);
    

    这样,就可以实现四个角的自定义绘制了,附上效果图:

    img

最后,我使用的是横向柱状图HorizontalBarChart,竖柱状图修改也与上面类似,只需要找到BarChartRenderer类做以上修改即可。

相关文章

网友评论

      本文标题:Android中使用MPAndroidChart绘制横向圆角柱状

      本文链接:https://www.haomeiwen.com/subject/oljpmktx.html