一步一步教你写股票走势图——K线图五(高亮联动二)
目录
一步一步教你写股票走势图——分时图一(概述)
一步一步教你写股票走势图——分时图二(自定义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线图五(高亮联动二)相关推荐
- 一步一步教你写股票走势图——K线图二(图表联动)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步一步教你写股票走势图——K线图四(高亮联动一)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步一步教你写股票走势图——K线图三(添加均线)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- android 分时图x轴宽度,一步一步教你写股票走势图——分时图二(自定义xy轴)...
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步一步教你写股票走势图——分时图二(自定义xy轴)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步步教你画股票图,K线图,高仿雪球股票
股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 _005.gif _006.gif 讲K线图之前,先来一个引言. 前两天听了朱凯大神的知乎live,其中说到一点,作为Androi ...
- 股票图,K线图,蜡烛图,高仿雪球股票
股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 讲K线图之前,先来一个引言. 作为Android开发者需要立即提升的三项技能: 分别是:UI,网络,线程,而UI又分:布局,绘制, ...
- StockChart Android股票图/K线图开发库
项目地址:GitHub 一.介绍 StockChart 一款适用于Android的高扩展性.高性能股票图/K线图开发库,支持多图组合,除了使用内置子图还支持定制子图满足复杂的业务需求. 特点 内置子图 ...
- python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析
大家对股票交易接口并不陌生,那么要想获取股票数据获取,也是可以通过python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析如下: import sys from PyQt5 i ...
最新文章
- sublime Text3快捷键使用大全
- mysql释放练级_面试官:谈谈Mysql事务隔离级别?
- VS2017新建视图中文乱码解决办法
- 中小学将逐步推广编程教育;勒索病毒攻击部分政府部门和医院;国内外药企密集调价;微软要给Win7用户推死亡通知,这就是今天的大新闻...
- python添加模块
- activiti 启动tomcat乱码_使用 IntelliJ IDEA 创建 Web 工程以及启动 Tomcat 乱码问题处理...
- layui 时间控件 只显示时分或者分秒
- 计算机查找dll文件,怎么查看进程正在调用哪些DLL文件
- 极验滑动验证码的识别
- java实现浏览器下载excel文件
- 程序员必备的 58 个学习网站
- 超详细超快的免费图床设置教程
- 行情平淡期做市商如何刷量 说一个网格策略魔改高频刷单策略的思路
- 单片机中 读引脚 和读锁存器的区别
- 奥的斯服务器设置楼层运行,奥的斯服务器PPT
- Windows11 文件管理器 很慢很卡怎么办
- 全中国的程序员,联合起来
- hangye5:2345网址导航百万重金求顶尖人才 意在扩展高端用户人群
- 【05】Bootstrap — 代码
- FTP协议报文详解及FTP穿越NAT
热门文章
- 2018年找工作总结
- 部署实战 | 手把手教你在Windows下用TensorRT部署YOLOv8
- 测试用例怎么写——黑盒测试
- HTML5期末大作业:个人毕设网站设计——李小龙武打明星人物介绍网站英文版本(9页) HTML+CSS+JavaScript...
- 基于垂杨CAD的智能变电站智能设计开发方案
- 跟我学Kafka之NIO通信机制
- js将html转成pdf,js将html转换为pdf
- 养老变身“坑老”? 找家靠谱养老机构为何这么难
- Kylin ext3/4 xfs手动扩容根分区
- git 切换到develop分支时 提示error: The following untracked working tree files would be overwritten by check