Android

MPAndroidChart barchart 상단 둥글게 만들기

끄적a 2021. 11. 17. 11:14

MPAndroidChart는 여러가지 커스텀을 할 수 있는데 아래와 같이 막대그래프의 모양을 변경 하는 커스텀을 제공해주지 않는다. 그래서 막대 그래프 모양을 그려주는 부분을 수정해야한다. 

그래프의 막대 모양은 android canvas를 이용해 그려준다. drawDataSet 의 그려주는 부분인 drawRect를 수정 해주면 도니다. (더 자세히 알고 싶은 사람은 canvas drawRect 구글링)

 

 

방법

  1. BarChartRenderer를 확장하는 커스텀 렌더 클래스 만들기
  2. 메서드 drawDataSet 재정의(가장 쉬운 방법은 BarChartRenderer.java에서 drawDataSet 메서드 코드를 복사하는 것입니다)
  3. "drawRect"를 "drawRoundedRect"로 변경
  4. 렌더러를 막대 차트로 설정...
    barChart.setRenderer(new MyRenderer(barChart, barChart.getAnimator(), barChart.getViewPortHandler()));

 

적용

위에 1~3번 내용 적용한 파일 아래 파일을 추가 "RoundBarChartRender.kt"

https://gist.github.com/timtsj/28e0da04b2037d7988e266636e10a277

 

chart를 생성하는 곳에서 아래처럼 추가 

var render = RoundBarChartRender(binding.chart, binding.chart.animator, binding.chart.viewPortHandler)
render.setRadius(20)
binding.chart.renderer = render

적용 결과

참조 

https://black-jin0427.tistory.com/144

https://github.com/PhilJay/MPAndroidChart/issues/803

https://stackoverflow.com/questions/30761082/mpandroidchart-round-edged-bar-chart/

https://github.com/PhilJay/MPAndroidChart/issues/4264