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

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

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绘制横向圆角柱状图)