目录
一步一步教你写股票走势图——分时图一(概述)
一步一步教你写股票走势图——分时图二(自定义xy轴)
一步一步教你写股票走势图——分时图三(对齐图表、自定义柱状图高亮)
一步一步教你写股票走势图——分时图四(高亮联动)
一步一步教你写股票走势图——分时图五(自定义标记)
一步一步教你写股票走势图——K线图一(概述)
一步一步教你写股票走势图——K线图二(图表联动)
一步一步教你写股票走势图——K线图三(添加均线)
一步一步教你写股票走势图——K线图四(高亮联动一)
一步一步教你写股票走势图——K线图五(高亮联动二)
一步一步教你写股票走势图——商业版


demo更新地址https://github.com/AndroidJiang/StockChart


Bug分析:

之前我们长按移动上面图表的高亮时,下面柱状图的高亮显示是正常的,但是,我们长按柱状图高亮时,bug就来了,上面的图表很傲娇啊,高亮压根不显示,我们还是看一下之前的效果图:

Bug解决:

还好这位chenguang79的小伙伴比较给力,在文章的结尾,给我留了言,虽然没有解决掉bug,但是却给了我思路啊,于是博主迫不及待动工,顺着思路就开干啊!

我们发现当柱状图高亮主动,蜡烛图高亮被动的时候,蜡烛图是压根不给你面子的,就是稳稳不动,你能拿我咋地?于是我们就换一种方式,你蜡烛图不动,但是我上面的图表除了你蜡烛图,还有三根折线图啊,你不动,我去找他们帮忙,至多塞点小费呗,咱不缺钱!

于是我们在setMaLine方法中,加入如下代码:

 if(ma==5) {lineDataSetMa.setHighlightEnabled(true);lineDataSetMa.setDrawHorizontalHighlightIndicator(false);lineDataSetMa.setHighLightColor(Color.WHITE);}else{/*此处必须得写*/lineDataSetMa.setHighlightEnabled(false);}

这里需要注意的是,我们只设置5日均线图的高亮,其他两根你既不能设置高亮,也不能放任不管,我们得设为false,小伙伴们可以测试下为什么这样,好啦,这下我们来看看效果咋样:

哎哟,还真有用了啊,但是仔细一看,fuck啊,这他妈的bug又来了啊,虽然可以高亮联动了,但是你前面那几根怎么还是那么傲娇呢,我们坐下来静静想了想,奥,我们设置了5日均线的高亮,mp库默认的没有数据的情况下,它是没有高亮的,于是乎,我们只能从源码着手了啊。

顺着藤,摸着瓜,一路找到它老家。这一路找的可心酸啦,总算找到折线图高亮实现的地方了。请大家传送到LineChartRenderer这个类下面,然后找到drawHighlighted(Canvas c, Highlight[] indices)这个方法,这就是绘制折线图高亮的地方。

  @Overridepublic void drawHighlighted(Canvas c, Highlight[] indices) {LineData lineData = mChart.getLineData();for (Highlight high : indices) {final int minDataSetIndex = high.getDataSetIndex() == -1? 0: high.getDataSetIndex();final int maxDataSetIndex = high.getDataSetIndex() == -1? lineData.getDataSetCount(): (high.getDataSetIndex() + 1);if (maxDataSetIndex - minDataSetIndex < 1)continue;for (int dataSetIndex = minDataSetIndex;dataSetIndex < maxDataSetIndex;dataSetIndex++) {ILineDataSet set = lineData.getDataSetByIndex(dataSetIndex);if (set == null || !set.isHighlightEnabled())continue;int xIndex = high.getXIndex(); // get the// x-positionif (xIndex > mChart.getXChartMax() * mAnimator.getPhaseX())continue;final float yVal = set.getYValForXIndex(xIndex);if (Float.isNaN(yVal))continue;float y = yVal * mAnimator.getPhaseY(); // get// the// y-positionfloat[] pts = new float[]{xIndex, y};mChart.getTransformer(set.getAxisDependency()).pointValuesToPixel(pts);// draw the linesdrawHighlightLines(c, pts, set);}}}

我们简单的看一下源码,发现也很好理解,就是遍历高亮嘛!将位置传给drawHighlightLines去绘制,我们可以打印下xIndex,发现它是从0开始的,那就放心了,看到里面有这句话,二话不说干掉他:

 /*注释此处,防止数据为空时,无高亮*/if (Float.isNaN(yVal))continue;

这样,我们遇到空数据时,就不会跳过啦!最后看下效果:

完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!完美!

高亮联动就到此为止啦,如果有啥问题,欢迎留言啊!


目录
一步一步教你写股票走势图——分时图一(概述)
一步一步教你写股票走势图——分时图二(自定义xy轴)
一步一步教你写股票走势图——分时图三(对齐图表、自定义柱状图高亮)
一步一步教你写股票走势图——分时图四(高亮联动)
一步一步教你写股票走势图——分时图五(自定义标记)
一步一步教你写股票走势图——K线图一(概述)
一步一步教你写股票走势图——K线图二(图表联动)
一步一步教你写股票走势图——K线图三(添加均线)
一步一步教你写股票走势图——K线图四(高亮联动一)
一步一步教你写股票走势图——K线图五(高亮联动二)
一步一步教你写股票走势图——商业版


demo更新地址https://github.com/AndroidJiang/StockChart


一步一步教你写股票走势图——K线图五(高亮联动二)相关推荐

  1. 一步一步教你写股票走势图——K线图二(图表联动)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  2. 一步一步教你写股票走势图——K线图四(高亮联动一)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  3. 一步一步教你写股票走势图——K线图三(添加均线)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  4. android 分时图x轴宽度,一步一步教你写股票走势图——分时图二(自定义xy轴)...

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  5. 一步一步教你写股票走势图——分时图二(自定义xy轴)

    目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...

  6. 一步步教你画股票图,K线图,高仿雪球股票

    股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 _005.gif _006.gif 讲K线图之前,先来一个引言. 前两天听了朱凯大神的知乎live,其中说到一点,作为Androi ...

  7. 股票图,K线图,蜡烛图,高仿雪球股票

    股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 讲K线图之前,先来一个引言. 作为Android开发者需要立即提升的三项技能: 分别是:UI,网络,线程,而UI又分:布局,绘制, ...

  8. StockChart Android股票图/K线图开发库

    项目地址:GitHub 一.介绍 StockChart 一款适用于Android的高扩展性.高性能股票图/K线图开发库,支持多图组合,除了使用内置子图还支持定制子图满足复杂的业务需求. 特点 内置子图 ...

  9. python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析

    大家对股票交易接口并不陌生,那么要想获取股票数据获取,也是可以通过python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析如下: import sys from PyQt5 i ...

最新文章

  1. sublime Text3快捷键使用大全
  2. mysql释放练级_面试官:谈谈Mysql事务隔离级别?
  3. VS2017新建视图中文乱码解决办法
  4. 中小学将逐步推广编程教育;勒索病毒攻击部分政府部门和医院;国内外药企密集调价;微软要给Win7用户推死亡通知,这就是今天的大新闻...
  5. python添加模块
  6. activiti 启动tomcat乱码_使用 IntelliJ IDEA 创建 Web 工程以及启动 Tomcat 乱码问题处理...
  7. layui 时间控件 只显示时分或者分秒
  8. 计算机查找dll文件,怎么查看进程正在调用哪些DLL文件
  9. 极验滑动验证码的识别
  10. java实现浏览器下载excel文件
  11. 程序员必备的 58 个学习网站
  12. 超详细超快的免费图床设置教程
  13. 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路
  14. 单片机中 读引脚 和读锁存器的区别
  15. 奥的斯服务器设置楼层运行,奥的斯服务器PPT
  16. Windows11 文件管理器 很慢很卡怎么办
  17. 全中国的程序员,联合起来
  18. hangye5:2345网址导航百万重金求顶尖人才 意在扩展高端用户人群
  19. 【05】Bootstrap — 代码
  20. FTP协议报文详解及FTP穿越NAT

热门文章

  1. 2018年找工作总结
  2. 部署实战 | 手把手教你在Windows下用TensorRT部署YOLOv8
  3. 测试用例怎么写——黑盒测试
  4. HTML5期末大作业:个人毕设网站设计——李小龙武打明星人物介绍网站英文版本(9页) HTML+CSS+JavaScript...
  5. 基于垂杨CAD的智能变电站智能设计开发方案
  6. 跟我学Kafka之NIO通信机制
  7. js将html转成pdf,js将html转换为pdf
  8. 养老变身“坑老”? 找家靠谱养老机构为何这么难
  9. Kylin ext3/4 xfs手动扩容根分区
  10. git 切换到develop分支时 提示error: The following untracked working tree files would be overwritten by check