接着上篇文章我们来说说怎么画高亮线和高亮线拖动展示数值
下面是截取同花顺的分时图针对这个图我们怎么来用MPChart来画呢
我们分析下上面这个图,高亮线我们mpchart是支持的而且颜色随便改,但是我们成交量的高亮线是一条线,而原始的mpchart是改变了柱子图的阴影
1.修改mpchart柱状图的高亮线显示
我们在BarChartRenderer类中找到drawHighlighted这个方法,我们要的改的东西就在这个里
看这个方法的最后一句是c.drawRect(mBarRect, mHighlightPaint);画矩形
所以我注释掉这句话自己画一条线,颜色,线宽自行设置对外提供方法保证不影响源码
c.drawLine(mBarRect.centerX(), mViewPortHandler.getContentRect().bottom,
mBarRect.centerX(),mViewPortHandler.getContentRect().top, mHighlightPaint);
2.上面那个是组合图,柱状图和LineChart,这里就不说怎么写组合图啦。
3.我们在点击图表展示高亮线的时候怎么让上面的指标随着移动而变呢
我改变选中的值就在onValueSelected这个方法中:
首先我们能拿到x值
float x = highlight.getX();
拿到了x那是不是就是y就知道啦,获取y根据自己的list集合自行获取。
onNothingSelected就是取消选中,要将高亮线去掉就设置null,隐藏上面那个展示指标的布局就OK啦
4.我们看到了横高亮线的右边还有个数值,这个是怎么画的呢,
我们需要重写LineChart的markerView,因为原始的markerView不能满足我们现状
首先我们定义一个类去继承MarkerView,因为只有一个Textview就直接展示就行。
第二步:重写LineChart的marketView方法
这样就可以实现上图那种啦。