最进项目中需要实现折线图中最大值最小值的颜色区别,发现所用的hellochart控件并没有提供单个节点颜色的设置,然而这并没有什么卵用,没有什么是撸源码解决不了的!
-
效果图
修改的类就是PointValue 和 LineChartRenderer这两个类
-
pointvalue就是节点类,里面包含了节点坐标等,我们需要在类中加一个color属性,重写构造方法,然后实现set,get
注意: set方法需要返回当前对象,否则会报错!
-
LineChartRenderer 在这个类中进行了线,点以及标签的绘制,由于我们只需要修改点,因此只需要修改其中的drawPoint()方法即可,同理,若需要修改其他样式,对应修改即可
在这个方法里我们需要根据传入的pointvalue参数获取初始化传入的color,给画笔设置颜色即可。
-
使用:
初始化点的时候直接传入需要设置的颜色即可
附:jar包修改方法
- 下载jar包,导入项目
- 在lib目录下找到相应的要修改的类(默认此类是不可修改的)
- 在java根目录下建立跟要修改类同包同名的类,复制要修改类的代码,在新建中进行修改
- 修改完成后rebuild,没有错误后,在build/intermediates/classes/debug/你的包名/你修改的类.class(后缀名为.class),复制
- 用压缩文件打开本地的jar文件,找到对应包下的.class文件,替换
- 最后,将替换成功的jar文件替换项目中的jar包,运行项目