发布网友 发布时间:2022-12-17 00:44
共1个回答
热心网友 时间:2023-09-12 12:34
项目做完出来的时候,我就发现了这个问题,奈何在网上没找解决办法,而我又是个Android渣渣,本来准备蒙混过关的,可是测试一定要我改,没办法只能看看MPAndroidChart里的可能涉及到的源码,看下能不能改好。所以,如果有不对和优化的地方,希望大家能指出,相互进步。
(已经在 MPAndroidChart饼图(PieChart)Value值重叠的解决方法(二) 中解决了)
PieChart不能设置为可以转动,即 pieChart.setRotationEnabled(false); 要设置成false,如果转动,会在转动的时候导致值的位置错乱,知道怎么解决的同学请指点,有空我也看看能不能解决。
网上有一个解决方案是,把占比较小部分的值不显示出来,但是博主也说,还是会有重叠的可能,不过大家可以看下 地址
我的思路是,每次都记住上一个值Y方向位置,和这次对比,如果间距小于了值字体的高度,则改变本次画值的位置
所以,我们只需要修改 mRenderer 中画图的实现步骤就好了,那我们就需要把这个 mRenderer 替换成我们自己定义的PieChartRenderer,而 mRenderer 又是在下面这个方法中初始化的:
因为我没找到可以直接设置mRenderer的方法,所以我们需要自己创建一个PieChart的子类,重写 init() 方法,让mRenderer变成我们自己的PieChartRenderer。